Einzelnen Beitrag anzeigen

Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

FreeLibrary in OnCloseQuery verursacht AV

  Alt 3. Jul 2007, 13:21
Hallo Leute,

ich habe ein PlugIn-System. Diese PlugIns sind DLLs mit Formulare. Wenn nun ein PlugIn durch den User geschlossen oder auf das "X" gedrückt wird, wird eine Message an das Hauptprogramm gesendet (WM_COPYDATA) und das entsprechende PlugIn freigegeben, indem erst die erstellten Forms freigebenen und dann die DLL mit FreeLibrary geschlossen wird.

Das klappt soweit auch ganz gut. Nun möchte ich, dass die DLL auch dann freigegeben wird, wenn der User auf das "X" klickt. Also habe ich den entsprechenden Quelltext (siehe unten) in die OnCloseQuery kopiert. Aber immer, wenn dieses Event eintritt, gibt es eine AV. Ich kann auch nicht sehen, an welcher Stelle sie auftritt. Aber mit dem PlugIn hat es nichts zu tun. Vielleicht habe ich auch nur einen logischen Denkfehler, denn sonst funktioniert das Freigeben - nur eben nicht in der OnCloseQuery.

Hier der Quelltext:

Delphi-Quellcode:
var
  Ident: PIdent;
  cds: TCopyDataStruct;
  hWnd: THandle;
begin
  GetMem(Ident, SizeOf(TIdent));
  try
    ident.appname:='Config';
    cds.dwData:=0;
    cds.cbData:=sizeOf(TIdent);
    cds.lpData:=Ident;
    hWnd:=FindWindow(nil, 'Hauptmenu');
    SendMessage(hWnd, WM_COPYDATA, Handle, Integer(@cds));
  finally
   FreeMem(Ident, sizeof(TIdent));
  end;
Danke im Voraus
  Mit Zitat antworten Zitat