Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.14;
Скачать: CL | DM;

Вниз

Запуск процедуры при загрузке dll   Найти похожие ветки 

 
Ji ©   (2005-05-25 10:44) [0]

сделал такую вещь:
-= код dll =-
var
 a: string;

procedure SetA; StdCall;
begin
 a := "Hello World!!!";
end;

procedure ShowA; StdCall;
begin
 ShowMessage(a);
end;


в программе делаю динамическую загрузку dll и по очереди вызываю
SetA;
ShowA;

в результате - вижу "Hello World!!!".

А вопроса у меня два:
1. Что вы можете сказать про использование глобальных переменных в dll (стоит ли это делать; какие могут быть грабли и т.д.)?
2. Как можно выполнить какой-нибудь код в момент загрузки dll? Например, в данном примере, можно ли выполнить процедуру SetA? Чтобы из программы достаточно было вызвать только ShowA и увидеть сообщение с присвоенным текстом.


 
evvcom ©   (2005-05-25 10:51) [1]

DLL_PROCESS_ATTACH


 
Digitman ©   (2005-05-25 11:27) [2]


> 1. Что вы можете сказать про использование глобальных переменных
> в dll


ничего определенного, ибо глобальность глобальности рознь : одно дело когда речь идет о переменной, доступной из любого модуля dll-проекта, другое дело когда речь идет об области памяти, доступной из любого модуля в составе модулей текущего процесса


 
Ji ©   (2005-05-25 12:13) [3]


> [2] Digitman ©   (25.05.05 11:27)


Первый вариант.
Или даже пока еще проще - внутри одного модуля.
Я почему спросил? Я нигде в книгах информации про это не встречал. Решил попробовать - работает. А поскольку теперь необходимо под практический опыт подвести теоретическую базу, вот и спрашиваю.


 
Digitman ©   (2005-05-25 12:23) [4]


> Я нигде в книгах информации про это не встречал


потому что в Делфи dll-проект есть такой же равноправный проект, как и любые иные проекты ... а раз так, то соглашения о глобальной доступности идентификаторов проекта - одни и те же, и никаких особенностей для dll-проекта в этом плане нет.



Страницы: 1 вся ветка

Текущий архив: 2005.06.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.029 c
14-1117090203
Prohodil Mimo
2005-05-26 10:50
2005.06.14
По просьбе Автомодератора


1-1116967058
Roman_Vladivostok
2005-05-25 00:37
2005.06.14
Ошибки при запуске DOS программы под WIN.


6-1111560156
olorint
2005-03-23 09:42
2005.06.14
Ошибка при загрузки страницы в WebBrowser


4-1114002475
Mike Evteev
2005-04-20 17:07
2005.06.14
Как поставить задачу на удаленный принтер?


1-1117506788
AntohaKET
2005-05-31 06:33
2005.06.14
Как связать две форма с переменными на первой.