Einzelnen Beitrag anzeigen

MasterC

Registriert seit: 9. Jan 2004
Ort: Krefeld
369 Beiträge
 
Delphi 2005 Personal
 
#1

Problem mit TBX und Plugin Schnittstelle

  Alt 21. Okt 2004, 14:10
Hi,

ich habe ein Problem mit meiner Plugin Schnittstelle und zwar habe ich bei der LoadPlugin procedure einen kleinen Abschnitt zum erstellen eines TBX Menu Eintrags eingefügt. Funktioniert soweit alles, aber wenn ich dann das Programm beende bekomme ich diese Exception:

Code:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt App.exe ist eine Exception der Klasse EInvalidPointer aufgetreten. Meldung: 'Ungültige Zeigeroperation'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK  Hilfe  
---------------------------
Hier der Code:

Delphi-Quellcode:
procedure TPlugin.LoadPlugIn;
var
  ProcAddr: Pointer;
  LoadPlugInProc: TLoadPlugIn;
begin
  // load library
  FHandle := LoadLibrary(PChar(DLLName));
  if (FHandle = INVALID_HANDLE_VALUE) or (FHandle = 0) then
    // library could not be loaded
    Abort;

  ProcAddr := GetProcAddress(FHandle, 'LoadPlugIn');
  if ProcAddr = nil then
  begin
    // plug-in load function is not exported, free library...
    FreeLibrary(FHandle);
    FHandle := INVALID_HANDLE_VALUE;
    // and abort
    Abort;
  end;

  try
    LoadPlugInProc := TLoadPlugIn(ProcAddr);
    // try executing the registration method
    if not LoadPlugInProc(FOwner.Owner, FPlugIn) then
      // registration failed, abort loading
      Abort
    else begin
      mainform.newitem := TTBXItem.Create(Mainform);
      mainform.newitem.Caption := FPlugin.GetName;
      mainform.pluginitem.Add(mainform.newitem);
    end;
  except
    // plug-in load function is not exported, free library...
    FreeLibrary(FHandle);
    FHandle := INVALID_HANDLE_VALUE;
    // and abort
    Abort;
  end;
end;
Komisch ist, dass wenn ich die Execute function eines Plugins aufrufe, kommt diese Exception nicht mehr.

Ich hoffe ihr könnt mir helfen.

MFG Chris.
Christian H.
www.Future-Coding.de
  Mit Zitat antworten Zitat