Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
6-1111560156
olorint
2005-03-23 09:42
2005.06.14
Ошибка при загрузки страницы в WebBrowser


4-1113892854
Упсс
2005-04-19 10:40
2005.06.14
Уникальный Explorer


14-1116945369
DiamondShark
2005-05-24 18:36
2005.06.14
Лучше день потерять, потом за пять минут долететь?


9-1110457042
qwe
2005-03-10 15:17
2005.06.14
Ламерсий вопрос по GlScene


1-1117051211
Erick
2005-05-26 00:00
2005.06.14
Помогите составить кодик





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский