AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Klassen aus einer DLL nutzen?

Ein Thema von mjenke · begonnen am 8. Nov 2007 · letzter Beitrag vom 8. Nov 2007
Antwort Antwort
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#1

Klassen aus einer DLL nutzen?

  Alt 8. Nov 2007, 07:21
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:
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;
Wichtig ist hierbei natürlich der Part um "GetProcAdress". Aber wie gehe ich vor, wenn es sich um Klassen handelt?

Matthias Jenke
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Klassen aus einer DLL nutzen?

  Alt 8. Nov 2007, 07:34
Ist es wirklich eine DLL? Für Delphi? Werden wirklich Klassen veröffentlicht oder doch nur C-Kompatible Funktionen?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Klassen aus einer DLL nutzen?

  Alt 8. Nov 2007, 07:40
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.
Markus Kinzler
  Mit Zitat antworten Zitat
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#4

Re: Klassen aus einer DLL nutzen?

  Alt 8. Nov 2007, 08:56
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...

Matthias Jenke
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Klassen aus einer DLL nutzen?

  Alt 8. Nov 2007, 09:06
Zitat von mjenke:
Übrigens ist es keine DLL, die speziell für Delphi geschrieben wurde. Wenn ich das bisher richtig sehe, ist es eine .NET-Geschichte.
Dann stehen dir mehrer Möglichkeiten offen. Entweder du läßt von Windows eine COM-Klasse anlegen und gehst über COM oder du nimmst Tools wie Managed VCL und ersparst dir die COM-Registrierung.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Klassen aus einer DLL nutzen?

  Alt 8. Nov 2007, 09:48
Ist das vielleicht ne Typenbibliotek? Kannst du sie in Delphi importieren?
Komponente => ActiveX importieren (Delphi 7)


Bye Christian
Christian
  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 12:33 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