Klassen aus einer DLL nutzen?
Guten Morgen, alle miteinander!
Ich habe folgendes Problem: Von einem anderen Dienstleister habe ich eine DLL zur Verfügung gestellt bekommen, in der Klassen definiert sind. Diese Klassen will ich nutzen. Aber wie mache ich das? Wenn ich veröffentlichte Methoden aus einer DLL nutzen möchte, kann ich das folgendermaßen tun (am Beispiel einer MathType-DLL):
Delphi-Quellcode:
Wichtig ist hierbei natürlich der Part um "GetProcAdress". Aber wie gehe ich vor, wenn es sich um Klassen handelt?
type
TMTInitAPI = function ( options: SmallInt; timeout: SmallInt ): Integer; stdcall; [...] implementation [...] constructor TMathType.Create; var InitAPI: TMTInitAPI; begin FHandleWLL := LoadLibrary ( 'C:\Programme\MathType\MathPage\MathPage.wll' ); FHandleDLL := LoadLibrary ( 'C:\Programme\MathType\System\MT5.dll' ); [...] @InitAPI := GetProcAddress ( FHandleWLL, 'MTInitAPI' ); if @InitAPI <> nil then ShowMessage ( 'InitApi: ' + IntToStr ( InitAPI ( mtinitLAUNCH_NOW, -1 ) ) ) else ShowMessage ( 'InitApi ist nil' ); [...] end; :?: |
Re: Klassen aus einer DLL nutzen?
Ist es wirklich eine DLL? Für Delphi? Werden wirklich Klassen veröffentlicht oder doch nur C-Kompatible Funktionen?
|
Re: Klassen aus einer DLL nutzen?
Dll unterstützen eigentlich keine Klassen im Interface. Stammt die Dll von dir? Enthält sie Delphi-Klassen?
Dann bräuchtest du einen Proxy-Mechanismus. |
Re: Klassen aus einer DLL nutzen?
Es handelt sich wirklich um eine DLL. Und wie gesagt: von einem Fremdanbieter. Das heisst, wir würden das Ding kaufen, wenn wir damit arbeiten können.
Es gibt (da es sich im Moment um eine Testversion handelt) nur eine rudimentäre Dokumentation, die lediglich eine Beschreibung der in der DLL hinterlegten Klassen beinhaltet. Das heisst, wenn ich erst einmal wüsste, wie ich diese Klassen erwische, werde ich sie vermutlich auch anwenden können. Übrigens ist es keine DLL, die speziell für Delphi geschrieben wurde. Wenn ich das bisher richtig sehe, ist es eine .NET-Geschichte. Es wird auf C#, VisualBasic und C++ verwiesen. Allerdings fehlen Beispiele. Ich habe übrigens auch beim Anbieter nachgefragt, bisher aber noch keine Antwort erhalten. Die Anfrage ging allerdings auch erst heute morgen raus... :) |
Re: Klassen aus einer DLL nutzen?
Zitat:
|
Re: Klassen aus einer DLL nutzen?
Ist das vielleicht ne Typenbibliotek? Kannst du sie in Delphi importieren?
Komponente => ActiveX importieren (Delphi 7) Bye Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:50 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