Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Речь о длл. Будьте бдительны! Глюк Delphi 6!


ISergey ©   (2003-01-25 12:15:00) 

Создайте такой проект длл:

library Project1;

uses Windows,
Dialogs;

procedure DLLHandler(Reason: Integer);
const P1 : PChar = "Attach";
P2 : PChar = "Detach";
begin
Case Reason of
DLL_PROCESS_ATTACH: begin
ShowMessage(P1);
end;
DLL_PROCESS_DETACH: begin
ShowMessage(P2);
end;
end;
end;

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

И сломпилируйте в Delphi6.
В другом проекте (уже екзешном) положите на фотму TSpeedButton
и задайте его обработчик так:

var hDLL : HINST;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if (SB.Down)then begin
hDLL := LoadLibrary( "Project1");
end else begin
FreeLibrary( hDLL);
end;
end;

Так вот. Откомпилировав проект в D6 вы никогда не получите сообщение "Detach". А откомпилированный проект в D4 работает без проблем! Почему так? и как это обойти? А может у меня D6 кривой?
Я в него когда-то внедрял библиотеку KOL...


SPeller   (2003-01-27 19:35:00) [1]


> Я в него когда-то внедрял библиотеку KOL...

KOL надо не внедрять, а оставлять где-нить рядом, но не в одной папке, и тогда всё будет хорошо.


paul_shmakov   (2003-01-27 17:32:00) [2]

уже раз 5 это здесь обсуждали, приводились листинги места ошибки в _StartLib. так что это не новость.
помогает service pack 2.


ISergey   (2003-01-25 15:09:00) [3]

А где взять? Целую неделю не могу нормальный хук на клавиатуру поставить!!!


Демонов Е.В.   (2003-01-25 13:08:00) [4]

Вот Удивил - это давно уже известно и специальный сервис пак для этого есть


Наверх

Титульная страница Поиск, карта сайта Написать письмо