как принудительно предотвратить загрузку dll (ExitCode := 1)

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

как принудительно предотвратить загрузку dll (ExitCode := 1)

Сообщение vic_75 » 29.08.2010 15:07:15

Добрый день.

На delphi прекрасно работает такой код
begin
DLLProc := @DLLMain;
DLLMain(DLL_PROCESS_ATTACH);
end.
..............................................
procedure DLLMain(Reason: DWORD);
begin
Case Reason Of
DLL_PROCESS_ATTACH :
begin // DLL_PROCESS_ATTACH
// if ..... then // какое-то условие
ExitCode := 1; //dll не будет загружаться
end; // DLL_PROCESS_ATTACH
End; //case
end;

В Free Pascal (использую 2.5.1)
ExitCode := 1 не работает

begin
DLLMain(DLL_PROCESS_ATTACH);
end.
...............................................
procedure DLLMain(Reason: DWORD);
begin
Case Reason Of
DLL_PROCESS_ATTACH :
begin // DLL_PROCESS_ATTACH
// if ..... then // какое-то условие
ExitCode := 1; //dll не будет загружаться
end; // DLL_PROCESS_ATTACH
End; //case
end;

Такое ощущение что ExitCode не используется при загрузке dll.
Как быть в подобной ситуации?
vic_75
незнакомец
 
Сообщения: 2
Зарегистрирован: 29.08.2010 14:55:33

Re: как принудительно предотвратить загрузку dll (ExitCode := 1)

Сообщение А.Н. » 29.08.2010 21:06:16

begin
DLLProc := @DLLMain;
DLLMain(DLL_PROCESS_ATTACH);
end.

Не понял я где это. В DLL?

Такое ощущение что ExitCode не используется при загрузке dll.
Как быть в подобной ситуации?

1. Забыть про DllMain. Это дерьмовая штука.
2. Использовать для инициализации DLL отдельную функцию.
А.Н.
постоялец
 
Сообщения: 230
Зарегистрирован: 13.03.2010 12:23:58

Re: как принудительно предотвратить загрузку dll (ExitCode := 1)

Сообщение vic_75 » 31.08.2010 14:22:53

Да уж.... Ответ А.Н. информативен до безобразия.....

Вообщем ничего лучшего как исправить родной system.pp (точнее syswin.inc)
и перекомпилировать RTL я не нашел.
vic_75
незнакомец
 
Сообщения: 2
Зарегистрирован: 29.08.2010 14:55:33

Re: как принудительно предотвратить загрузку dll (ExitCode := 1)

Сообщение А.Н. » 01.09.2010 14:04:40

Ну, про DllMain много написано. Что уж тут ещё приписать-то? Лучше забыть про неё, по-моему.
Хм... Каждый раз, при обновлении среды, исправлять и перекомпилировать?
А.Н.
постоялец
 
Сообщения: 230
Зарегистрирован: 13.03.2010 12:23:58


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 36

Рейтинг@Mail.ru