Форум: "Основная";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
ВнизЗапуск процедуры при загрузке 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c