AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Aus einer DLL auf externe Funktionen zugreifen
Thema durchsuchen
Ansicht
Themen-Optionen

Aus einer DLL auf externe Funktionen zugreifen

Ein Thema von CalganX · begonnen am 31. Mär 2003 · letzter Beitrag vom 10. Dez 2009
 
jbg

Registriert seit: 12. Jun 2002
3.485 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9
  Alt 1. Apr 2003, 20:40
Wenn man die Leute im Stich lässt (= wenn man beim Arbeiten ist), dann kommen die auch ohne Hilfe zum Ziel.

Zu deinem Problem mit der Schutzverletzung:

Zitat:
iPlg := aProc;
Hiermit liefert die DLL eine neues Interface zurück. Wenn du nun die DLL entlädst (FreeLibrary), so bleibt der Interface-Zeiger iPlg noch besteht, wohingegen der Speicherplatz des Interfaces von Windows freigegeben wird. Da Delphi beim Verlassen von mCfgToolsClick bei allen dort verwendeten Interfaces den Referenzzähler um 1 herunter setzt (bei 0 wird das Interface freigegeben), greift das Programm auf ungültigen Speicher zu, was eine AV zur Folge hat.

Um dieses Problem zu umgehen, musst du vor dem FreeLibary alle Interfaces freigeben. Dies kannst du auf folgende Weise machen:
Delphi-Quellcode:
  showMessage(iPlg.GetName);
  iPlg := nil; // Interface freigeben
  FreeLibrary(hDLL);
Noch ein Tipp:
Wenn du mehrere Plugins gleichzeigtig im Speicher halten willst, so bietet sich die Klasse TInterfaceList aus der Unit Contnrs an.
  Mit Zitat antworten Zitat
 


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 19:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz