Komponenten per DLL registrieren
Hi,
ich versuche Komponenten über dlls zu registrieren, damit ich die Komponenten-Verwaltung meines DFM-Editors modular erweitern kann. Mein bisheriger Versuch:
Delphi-Quellcode:
die DLL-Procedure wird ausgeführt, jedoch ist die klasse nicht registriert (bzw. nur innerhalb des DLL-Adressraumes registriert), denn ich bekomme die Meldung "Funktioniert nicht"...
//dll-code
uses ...,extCtrls; procedure registerComp; begin RegisterClass(TShape); end; exports registerComp; //Host-code type RegisterComp= procedure; ... procedure TForm1.Button1Click(Sender: TObject); var h:THandle; p:RegisterComp; begin h:=LoadLibrary('dll_p.dll'); @p:=GetProcAddress(h,'registerComp'); if assigned(p) then begin p; end; if assigned(getclass('TShape')) then showmessage('funktioniert') else showmessage('funktioniert nicht'); freelibrary(h); end; Jemand eine Idee, wie man das bewerkstelligen kann? Gruß Frank |
Re: Komponenten per DLL registrieren
Wird nur funktionieren wenn sowohl Exe als DLL mit Laufzeitpackages arbeiten. Ansonsten haben Exe und DLL komplett unabhängige Objekthierarchien (TObject Exe <> TObect Dll). Es könnte auch sein das es nur funktioniert wenn die DLL ein Delphi-Package ist welches du dynamisch Lädst.
|
Re: Komponenten per DLL registrieren
wie erzeuge ich ein solches Package, bzw. wie lad ich das (delphi3)?
Hat da irgendjemand ein funktionierendes Beispiel? hab da zwar funktionen wie LoadPackage gefunden aber hab es noch nicht wirklich zum laufen bekommen. Gruß Frank |
Re: Komponenten per DLL registrieren
niemand eine idee oder am besten ein Beispiel?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 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