Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Scanner API verwenden (C++) (https://www.delphipraxis.net/162668-scanner-api-verwenden-c.html)

cltom 1. Sep 2011 15:43

Scanner API verwenden (C++)
 
Hej,

sehr wahrscheinlich keine kluge Frage, ich probier es dennoch: Ich habe ein SDK für einen Scanner, das Ziel ist auch, den Scanner selber anzusprechen, um bestimmte Funktionen auszuführen, die im Twain-Interface nicht verfügbar sind. Das SDK ist aber auf C/C++ ausgelegt, die API ist daher ebenfalls in C. Darüber hinaus gibt es noch eine DLL für den Scanner.

Ist es chancenlos oder denkbar, dieses SDK unter Delphi zu nutzen bzw. was muss man in Erfahrung bringen, um diese Frage beantworten zu können.

danke und gruß
tom

CCRDude 1. Sep 2011 15:48

AW: Scanner API verwenden (C++)
 
Die Überschrift sagt, es gehe um eine C++-API. Das wäre schwer. Wenn die API in C ist, ist das aber nun wieder kein Problem. Die gesamte Windows API ist's immerhin ebenfalls :)

Aber warum geht eine DLL über die API hinaus? Besagt die API nicht, wie diese DLL zu verwenden ist, bzw. was ist das für eine DLL und hat diese eine eigene API?

Schritt 1 wäre für mich, die Export-Tabelle der DLL anzusehen. Sind die Exports decorated oder schlichte Namen?

Schritt 2 wäre dann nach einer Beschreibung der API zu suchen, um die Parameter, Aufrufkonventionen etc. herauszufinden.

Falls Du in Schritt 2 nichts findest, wird es haarig. Debugger her, vllt. auch erstmal sowas wie ApiSpy, und die Parameter herausfinden. Und hoffen daß die Funktionsnamen aussagekräftig genug sind :)

cltom 1. Sep 2011 15:57

AW: Scanner API verwenden (C++)
 
Hej,

so sehr ich über die schnelle Antwort dankbar bin, so wenig verstehe ich sie, was aber daran liegt, dass mir hier völlig der Hintergrund fehlt, was die API macht, was die Dll macht und wie ich hinter beides komme.

Die ScannerAPI.h enthält neben einigen Konstanten-Deklarationen rund ein Dutzend Scanner-Funktionsnahmen. Ist es jetzt so, dass diese Funktionen dann in der Dll des Scanners liegen? Müsste ich dann nur etwas tun, um die API anzupassen, um dann die DLL nutzen zu können.

Wie gesagt, sorry für mein Laientum, danke für Orientierungshilfe

CCRDude 1. Sep 2011 16:00

AW: Scanner API verwenden (C++)
 
DLL = Binärdatei mit Code
API = Application Programming Interface = Beschreibung der Schnittstelle

Du hast eine .h? Super :)

Ja, die .h beschreibt nur, welche Funktionen aus der .dll verwendet werden sollen.

Du musst also nur die Inhalte nach Delphi übertragen.

Konstanten sind ja recht einfach, bei den Funktionsnamen (sicherlich mit Parametern) musst Du halt schauen, daß Du sie richtig übersetzt, die Aufrufskonvention, die Übergabetypen und die Variablentypen sind ja zwischen C und Delphi unterschiedlich geschrieben.

Als Beispiel fürs Verständnis könntest Du in die (z.B.) Windows.pas schauen und Dir zu Windows-API-Aufrufen parallel im MSDN anschauen, wie diese Funktionen in C definiert sind.

cltom 5. Sep 2011 09:20

AW: Scanner API verwenden (C++)
 
Danke Dir nochmals! Ich werde mich mal mit den Hinweis soweit einlesen, um beurteilen zu können, ob ich da in vernünftiger Zeit weiterkomme.

gruß
tom


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:47 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