![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с деактивизацией dll. [D6, Win2k]
SVM © (2002-10-09 00:15:00)Народ, подскажите почему не работает код при деинициализаци dll и как исправить это.
Код примерно такой:
library MyDll;
uses
Windows, Messages;
{здесь описаны какие функции, процедуры}
procedure DLLEntryPoint(dwReason: DWORD); stdcall
begin
case dwReason of
DLL_PROCESS_ATTACH:
begin
{здесь мы что-то инициализируем}
end;
DLL_PROCESS_DETACH:
begin
{а вот здесь ничего не хочет выполняться, ПОЧЕМУ?!}
end;
end;
end;
exports {какие-то функции, процедуры};
begin
DllProc := @DLLEntryPoint;
DllEntryPoint(DLL_PROCESS_ATTACH);
end.
paul_shmakov (2002-10-10 12:17:00) [1]2 SVM:
" А что если откомпилировать по DELPHI 5?"
все будет работать. только лучше на delphi 6 второй service pack поставить. и stdcall нужно убрать - не нужен он там.
Ihor Osov'yak (2002-10-10 01:09:00) [2]По древности вспоминаю, имел похожую траблу. Сабж случался, когда длл выгружалась в другом потоке, чем загружалась. Но это происходило лишь при аварийном завершении программы. (дело было в d5 с сервис паками)
SVM (2002-10-10 00:16:00) [3]А что если откомпилировать по DELPHI 5?
SVM (2002-10-09 12:12:00) [4]Да, действительно, у меня DELPHI 6 без сервис паков, а по поводу stdcall, я пробовал и без него.
paul_shmakov (2002-10-09 01:31:00) [5]1) насколько я помню, DllProc не является stdcall. так что stdcall нужно убрать.
2) у вас delphi 6 без второго service pack. совсем недавно такая же проблема была у QymL. там ошибка в процедуре _StartLib из system.pas.