Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Eine API (DLL) laden - Nur wie? (https://www.delphipraxis.net/144463-eine-api-dll-laden-nur-wie.html)

TheMiller 8. Dez 2009 13:20


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:

The following examples show how to load the API in C, VisualBasic and JScript programs Other Programming languages should offer similar approaches to load the API.
Ich darf leider nicht nennen, um welche API es sich handelt.

Ich hoffe, ihr könnt mir trotzdem weiterhelfen.

Danke im Voraus

Bernhard Geyer 8. Dez 2009 13:27

Re: Eine API (DLL) laden - Nur wie?
 
Zitat:

Zitat von DJ-SPM
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!).

Gut so, ist doch eh gestorben.

Aber ich denke das es sich um eine COM/Automatisierungs-Schnitttstelle und dann sollte die Verwendung mit Typelib-Import und Co. gehen.

TheMiller 8. Dez 2009 13:29

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 ;)

Bernhard Geyer 8. Dez 2009 13:30

Re: Eine API (DLL) laden - Nur wie?
 
Zitat:

Zitat von DJ-SPM
Ja, es ist eine COM-Schnittstelle. Kann ich also mit Delphi programmieren, ja?

Ja.
Zitat:

Zitat von DJ-SPM
Aber deinen Kommentar unter dem Zitat habe ich nicht verstanden ;)

Ich meine es ist gut für dich das du mit Delphi.NET noch nichts gemacht hast. Dieser Teil von Delphi ist eh schon gestorben und war praktisch vollständig unbrauchbar. Wenn schon Pacal und .NET dann Delphi.Prism.

TheMiller 8. Dez 2009 13:33

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" ;)

Bernhard Geyer 8. Dez 2009 13:39

Re: Eine API (DLL) laden - Nur wie?
 
Zitat:

Zitat von DJ-SPM
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" ;)

Über den Menüpunkt "Komponenten/Komponenten importieren...", "ActiveX-Steuerelement importieren", <geheimer Name> auswählen weiter durchgehen.

TheMiller 8. Dez 2009 13:52

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!

Bernhard Geyer 8. Dez 2009 13:57

Re: Eine API (DLL) laden - Nur wie?
 
Zitat:

Zitat von DJ-SPM
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?

Deine COM-Komponente (COM-Schnittstelle) muß halt auf dem Ziel-PC installiert sein. Ansonsten wird alles in die Exe kompiliert.

Luckie 8. Dez 2009 14:02

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.

TheMiller 8. Dez 2009 14:10

Re: Eine API (DLL) laden - Nur wie?
 
Achso.... langsam kommt etwas Licht ins Dunkle.

Du schriebst

Zitat:

Zitat von Luckie
Wichtig ist auch, dass das COM-Objekt auf dem Zielrechner auch installiert und im System registriert ist.

Was bedeutet, das Installieren und Registrieren? Reicht es, die DLL in spezielle Systemverzeichnisse zu kopieren, oder gibt es eine Windows-API-Funktion, die ich aufrufe um die DLL zu registrieren?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 Uhr.
Seite 1 von 2  1 2      

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