Вниз
Скачать: CL | DM;

hinstance   Найти похожие ветки 

 
ph0sgen ©   (2006-08-31 20:12) [0]

Доброго времени суток.

имеется код:


library liba;

uses
 windows;

var
 a:array[0..255] of char;

begin
 getmodulefilename(hinstance,@a,255);
 messagebox(0,a,a,0)

end.


вопрос:
почему если передать функции getmodulefilenamе 0 вместо hinstance
то выводится имя файла, который вызвал DLL?

как еи DLL самому определить hinstance, чтобы возвращалось имя DLL?

спасибо за внимание.


 
begin...end ©   (2006-08-31 21:05) [1]

> ph0sgen ©   (31.08.06 20:12)

> почему если передать функции getmodulefilenamе 0 вместо hinstance
> то выводится имя файла, который вызвал DLL?

Так и задумано. См. в справке описание GetModuleFileName, параметра hModule:

hModule

Identifies the module whose executable filename is being requested. If this parameter is NULL, GetModuleFileName returns the path for the file used to create the calling process.


> как еи DLL самому определить hinstance, чтобы возвращалось
> имя DLL?

Глобальная переменная HInstance инициализируется значением базового адреса загрузки исполняемого модуля (в данном случае -- библиотеки) в модуле SysInit.pas, который подключается автоматически. При загрузке DLL к моменту начала исполнения кода между begin и end эта переменная уже будет инициализирована. Поэтому приведённый Вами код корректен -- он сообщит как раз путь к файлу DLL. Только 255 лучше заменить на MAX_PATH.


 
ph0sgen ©   (2006-08-31 22:29) [2]

> begin...end

спасибо.
а каким образом происходит инициализация?


 
Eraser ©   (2006-08-31 22:49) [3]

> [2] ph0sgen ©   (31.08.06 22:29)

begin...end уже ведь дал наводку - см. модуль SysInit.pas.


 
Игорь Шевченко ©   (2006-08-31 23:23) [4]


> а каким образом происходит инициализация?


Джеффри Рихтер очень хорошо этот процесс описывает.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: -0.966 c
15-1166817002
Zeqfreed
2006-12-22 22:50
2007.01.14
Вопрос по сайту


15-1166607915
JENIA_VLASOV
2006-12-20 12:45
2007.01.14
Алгоритм Эратосфена


8-1148062433
Алексей89
2006-05-19 22:13
2007.01.14
У кого есть литература по прогр-ю звуков и где достать


15-1166209801
menart
2006-12-15 22:10
2007.01.14
Линия тренда и получение формулы


15-1166456161
Ringo
2006-12-18 18:36
2007.01.14
О вредном излучении из системных блоков.




   Наверх