![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Речь о длл. Будьте бдительны! Глюк 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]Вот Удивил - это давно уже известно и специальный сервис пак для этого есть