Einzelnen Beitrag anzeigen

Benutzerbild von peschai
peschai

Registriert seit: 15. Feb 2004
Ort: Göppingen
270 Beiträge
 
Delphi XE5 Professional
 
#10

Re: Problem beim Beenden (DLL mit Formular und mODBC)

  Alt 2. Okt 2007, 07:36
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;
Peter Schaible
  Mit Zitat antworten Zitat