Хочу отловить момент, когда dll цепляется к процессу.
Пишу самую элементарную LKK^
library p1;
uses
Classes
;
procedure Insert(i: cardinal); cdecl;
var F:TextFile;
begin
AssignFile(F, 'c:\insert.txt');
Rewrite(F);
Writeln(F, 'done');
Closefile(F);
end;
procedure PH2(dllparam : longint);
var F:TextFile;
begin
AssignFile(F, 'c:\Dll_Thread_Attach_Hook.txt');
Rewrite(F);
Writeln(F, 'done');
Closefile(F);
end;
function PH(dllparam : longint) : longbool;
var F:TextFile;
begin
AssignFile(F, 'c:\Dll_Process_Attach_Hook.txt');
Rewrite(F);
Writeln(F, 'done');
Closefile(F);
Result:=true;
end;
exports Insert;
begin
Dll_Process_Attach_Hook:=@PH;
Dll_Thread_Attach_Hook:=@PH2;
end.
Далее вызываю функцию Insert после динамической линковки в тестовой проге. Без проблем создается файл insert.txt, что говорит о том, что функция Insert в DLL отработала. А вот файлы Dll_Process_Attach_Hook.txt и Dll_Thread_Attach_Hook.txt не создаются, что говорит о том, что соответствующие события мне отловить не удалось.
В чем моя ошибка? Как мне все-таки поймать момент прилинковки мой DLL к процессу?
Использую FPC 2.0.2. Компилю DLL вообще без опций:
fpc.exe моя_dll.lpr
Windows HP Home.