![]() |
Eine API (DLL) laden - Nur wie?
Hallo,
ich habe hier eine API liegen, die recht gut Dokumentiert ist. Diese möchte ich nun in mein Projekt einbinden. Sowas habe ich noch nie gemacht, deshalb frage ich bestimmt ziemlich dämlich. Nun gut. Die API hat einige Beispiele, jedoch nicht für Delphi. Sie zeigen, wie man die API in C/C++, VB, JScript (JavaScript), C# .net läd. Die letzte Variante könnte mir - glaub ich - gefallen. Ich habe noch nie etwas mit (C#) .net gemacht. Aber ich weis, dass bei meinem Delphi i-was mit .Net dabei ist (Delphi 2007 RAD Studio Original!). Es sind sogar zu jeder der o.g Sprachen Code-Beispiele dabei, wie man die API laden muss. Meine Frage ist jetzt: Muss ich den Umweg über (c#) .net gehen, oder kann ich die API auch wie eine normale DLL in Delphi laden und so auf die Methoden etc. zugreifen? Zitat:
Ich hoffe, ihr könnt mir trotzdem weiterhelfen. Danke im Voraus |
Re: Eine API (DLL) laden - Nur wie?
Zitat:
Aber ich denke das es sich um eine COM/Automatisierungs-Schnitttstelle und dann sollte die Verwendung mit Typelib-Import und Co. gehen. |
Re: Eine API (DLL) laden - Nur wie?
Ja, es ist eine COM-Schnittstelle. Kann ich also mit Delphi programmieren, ja?
Aber deinen Kommentar unter dem Zitat habe ich nicht verstanden ;) |
Re: Eine API (DLL) laden - Nur wie?
Zitat:
Zitat:
|
Re: Eine API (DLL) laden - Nur wie?
Super!
Kannst du mir kurz erklären, wie ich die API einbinden und benutzen kann, oder fällt das unter den Punkt "erfolgreich umgesetzte intuitive Bedienungsmöglichkeit" ;) |
Re: Eine API (DLL) laden - Nur wie?
Zitat:
|
Re: Eine API (DLL) laden - Nur wie?
Wow, das funktioniert ja wirklich einfach. Delphi hat mir jetzt ein Unit erstellt, welche ich mal in ein Testprojekt eingebunden habe. Es compiliert ohne Fehler.
War das alles, oder muss ich für den Gebrauch noch die DLL irgendwie einbinden? Oder reicht einfach die Weitergabe? Ich meine, Delphi hat mir ja die Unit erstellt. Wird die DLL nun für das einzelne Projekt überflüssig? Vielen Dank soweit! |
Re: Eine API (DLL) laden - Nur wie?
Zitat:
|
Re: Eine API (DLL) laden - Nur wie?
Nein, die DLL wird natürlich nicht überflüssig. In der von Delphi erstellten Unit sind nur die Schnittstellendefinitionen drin. Der eigentliche Code steckt natürlcih immer noch in der DLL. Wichtig ist auch, dass das COM-Objekt auf dem Zielrechner auch installiert und im System registriert ist.
|
Re: Eine API (DLL) laden - Nur wie?
Achso.... langsam kommt etwas Licht ins Dunkle.
Du schriebst Zitat:
|
Re: Eine API (DLL) laden - Nur wie?
Das geht per Hand über Windows regsrv.exe oder so ähnlich. Oder mit Hilfe einer API Funktion. Guck mal hier:
![]() |
Re: Eine API (DLL) laden - Nur wie?
regsvr32 IIRC
|
Re: Eine API (DLL) laden - Nur wie?
Ich glaube, der Dateiname regsvr und regsvr32 hatte sich mal geändert. In Win95 war es noch regsvr und in NT war es regsvr32. Oder so ähnlich. Ist aber schon ein paar Jahre her.
Wenn man einen Installer für sein Programm benutzt, gibt es meistens irgendwo eine Option, die dem Installer sagt, dass die Datei registriert werden muss. |
Re: Eine API (DLL) laden - Nur wie?
Vielen Dank euch allen.
Ich denke, ich habe erstmal genug Futter ;) |
Re: Eine API (DLL) laden - Nur wie?
Hm.. eins noch...
Ich hab jetzt ein neues Projekt gestartet und die Unit eingebunden, die mir Delphi erstellt hat. Muss ich jetzt in neue Projekte auf meinem PC noch ActiveX oder Com-Objekte einbinden, oder reicht die Nennung der Unit in der Uses-Klausel? Ich bekomme nämlich beim Erstellen des Objekts eine AV "unbekannter Fehler" |
Re: Eine API (DLL) laden - Nur wie?
Hallo,
Zitat:
Heiko |
Re: Eine API (DLL) laden - Nur wie?
Zitat:
Zwei möglichkeiten bestehen: 1, Die Kompo ist nicht richtig installiert. Lässt sich mit Beispielcode für VBS überprüfen 2, Die Kompo ist nicht mit Delphi kompatible - Dumm gelaufen. |
Re: Eine API (DLL) laden - Nur wie?
Oder er muss VBScript registrieren denke die ActiveX erwartet das.
Bevor er fragt wie das geht ;) So! regsvr32 c:\windows\system32\scrrun.dll" gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:46 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