AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Problem mit TBX und Plugin Schnittstelle
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit TBX und Plugin Schnittstelle

Ein Thema von MasterC · begonnen am 21. Okt 2004 · letzter Beitrag vom 21. Okt 2004
Antwort Antwort
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
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Problem mit TBX und Plugin Schnittstelle

  Alt 21. Okt 2004, 14:16
Hi,

ich habe auch mal eine so ähnlich Pluginschnitstelle gemacht (meine Prozedur heisst auch LoadPlugin )

versuch mal beim OnClose des Forms die geladenen Bibliotheken mit FreeLibrary() freizugeben.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
MasterC

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

Re: Problem mit TBX und Plugin Schnittstelle

  Alt 21. Okt 2004, 14:19
Mach ich ja, wenn ich kein TBX Item dem Menü hinzufüge kommt diese Exception ja nicht.
Christian H.
www.Future-Coding.de
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz