Hi zusammen,
Philipp hat recht. Deshalb hier noch mal von mir ein kleines komplettes Beispiel
Delphi-Quellcode:
library TestDLL;
uses
Windows, SysUtils, Classes, Forms;
procedure DLLEntryPoint(dwReason: DWord);
begin
case dwReason
of
DLL_PROCESS_ATTACH: InitializeMethode;
//die methode muss ich selber schreiben
DLL_PROCESS_DETACH: FinalizeMethode;
//die methode muss ich selber schreiben
end;
end;
begin
{First, assign the procedure to the DLLProc variable.}
DllProc := @DLLEntryPoint;
{Now invoke the procedure to reflect that the DLL is attaching to the process.}
DLLEntryPoint(DLL_PROCESS_ATTACH);
end.
Der Finalize-Abschnitt innerhalb einer
Unit funktioniert nicht. Dieser Abschnitt gilt generell nur für eine
Unit und nicht für eine
DLL. Wie und Wann eine
Unit geladen oder entladen wird, ist von Delphi abhängig. Vor dem Laden von Units macht Delphi einiges im Hintergrund, was mit der
DLL oder auch der Programmdatei selbst nicht viel zu tun hat.