Hallo
Zusatzanmerkungen:
Zitat:
Delphi-Quellcode:
procedure DLLMain(Reason: Integer);
begin
case Reason of
DLL_PROCESS_ATTACH:
begin
DisableThreadLibraryCalls(hInstance);
//CoInitialize(nil);
end;
DLL_THREAD_ATTACH:
;
DLL_THREAD_DETACH:
;
DLL_PROCESS_DETACH:
begin
//CoUnInitialize;
// Form1.Free();
end;
end;
if Assigned(DLLProcNext) then DLLProcNext(Reason);
end;
exports
StartReport, FreeDLL;
begin
DLLProcNext := Pointer(InterlockedExchange(Integer(@DLLProc), Integer(@DLLMain)));
DLLMain(DLL_PROCESS_ATTACH);
end.
Kann es sein, daß du dynamisch
DLL's laden und entladen hier vermischt mit statischem Laden Entladen ? Ich komme zu dieser Frage wegen deiner BEGIN section und dem exports FreeDLL.
Wenn Statisch, (also programstart, dann
dll auto geladen und bei Programmende auto entladen)
dann würde ich dir empfehlen:
Delphi-Quellcode:
exports
StartReport;
Initialization
DLLMain(DLL_PROCESS_ATTACH);
...DLLProcNext...
Finalization
...DLLProcNext...
DLLMain(DLL_PROCESS_DETACH);
end;