Конференция "FreePascal" » Dll_Process_Attach_Hook [Win32]
 
  • Spirit111 (23.07.06 03:47) [0]
    Хочу отловить момент, когда dll цепляется к процессу.

    Пишу самую элементарную LKK^


    library p1;

    {$mode objfpc}{$H+}

    uses
     Classes
     { add your units here };

    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.
  • Spirit111 (23.07.06 03:49) [1]
    В строчке "Пишу самую элементарную LKK^" грамматическая ошибка. Надо читать: "Пишу самую элементарную DLL:". Сорри.
  • Spirit111 (27.07.06 00:03) [2]
    Неужели никто DLL на фрипаскале не пишет? :)
 
Конференция "FreePascal" » Dll_Process_Attach_Hook [Win32]
Есть новые Нет новых   [119036   +63][b:0][p:0.001]