![]() |
Datafox DFCom - API
04.03.18
Dokumentation zur Datafox Kommunikationsbibliothek (DFComDLL.dll / DFCom_x64.dll)
|
Um die Anwendung der Kommunikationsbibliothek zu demonstrieren liegen entsprechende Beispiele für die unterschiedlichsten Programmiersprachen bei. Bitte beachten Sie, dass je nach Projektstand, nicht alle in der Bibliothek enthaltenen Funktionen eingesetzt werden. Es werden bewusst nur wenige unterschiedliche Datentypen als Funktionsparameter verwendet, somit ist es leicht möglich aus den vorhandnen Deklarationen für neue Funtionsdeklarationen abzuleiten.
Für Windows 32bit Betriebssysteme liegt dem Bundle eine erstellte dynamik link library DFComDLL.dll bei.
Die DLL ist generell auch unter Windows 64bit Betriebssystem einsetzbar, dieses setzt jedoch vorraus, dass die einbindende Anwendung ebenfalls in einer 32bit Konfiguration erstellt wird.
Für das Verwenden in einer 64bit Anwendung liegt die Bibliothek als DFCom_x64.dll vor.
In der DFComDLL.dll sind die Funktionsnamen der Funktionsprototypen teilweise durch den C-Compiler dekoriert. Vor den Namen wird das Zeichen "_" gesetzt und an den Namen wird die Anzahl der übergebenen Parameter in Längen-Byte durch "@" getrennt angehängt. Zusätzlich zum Funktionsprototyp werden daher in der API-Dokumentation durchgängig auch die Exportnamen angegeben. Sie werden z.B. bei Verwendung von Visual Basic oder Delphi zum Import benötigt.
Die Dekoration von Funktionsnamen betrifft nur die Funktionsprototypen der 32bit Version und auch dort nur bis zur Version 04.03.08. Ab dieser Version werden alle Funktionsprototypen ohne Dekoration exportiert. Bitte achten Sie daher auf den Exportnamen bei der jeweiligen Funktionsdokumentation.
Bei dem Import der einzelnen Funktionen ist darauf zu achten, dass sich in der Umsetzung für die x64 Plattform sämtliche Funktionsnamen nach einem einheitlichen Schema abändern.
Die jeweiligen Exportnamen der 32 und 64bit Variante sind bei jeder Funktion in der Dokumentation angegebenen.
Zur Verdeutlichung wird für einen Umstieg von 32bit auf 64bit der Unterschied anhand des Exports der Funktion DFCComOpenIV() beschrieben.
Exportiert von DFComDLL: _DFCComOpenIV@24
Bei der eigentlichen Deklaration in Ihrer Anwendung muss der vorgesetzte _
und das hinter dem eigentlichen Namen stehende @24
weggelassen werden, somit ergibt sich DFCComOpenIV
. Diese Vorgehensweise gilt für jede der enthaltenen Funktionen.
Ggf. können Sie Sich auch den Unterschied mittels Tools wie DependencyWalker anzeigen lassen, indem Sie die 32bit und 64bit Versionen Vergleichen.
Ob die Namensänderungen sich für Sie auswirken, hängt letztlich von der verwendeten Programmiersprache ab.
Die beschriebene Namensänderung ist die einzige zu beachtende Änderung. Das Kommunikationsmodul muss sich so verhalten, wie die Umsetzung für die x86-32bit Plattform.
Für unixoide Betriebssysteme liegen dem Bundle die Quelltexte und ein Makefile bei. Das Makefile befindet sich im Projektverzeichnis DatafoxLibraryIV. Die Übersetzung des Projektes in eine statische und/oder dynamische Bibliothek kann durch Aufruf des Kommanzozeilentools make erfolgen.
Erstellung von Debug oder Release
Im Makefile ist zu Beginn ein Abschnitt, der darüber entscheidet ob bei der Kompilierung eine Debug oder Release Konfiguration zum Einsatz kommt.
Bitte stellen Sie vor Erstellung sicher, dass die Konfigruation auf den Einsatzzweck passt.
Durch den Aufruf von 'make all' werden folgende Dateien erstellt. Die Pfadangaben beziehen sich auf das Projektverzeichnis DatafoxLibraryIV.
Durch den Aufruf von 'make clean' werden alle erstellen Dateien gelöscht.
Da in der Bibliothek auf Features von C++11 zurückgegriffen wird, ist mindestens eine GCC Version 4.9 notwendig. Erst ab der GCC Version 4.9 werden die aktuell benötigten Features unterstützt.
In CentOS ist es durch Verwendung einer Software-Collection möglich für das Erstellen der Bibliothek auf eine aktuellere GCC Version zu Wechseln, ohne die Standardinstallation und Versionen der Compiler-Chain zu verändern.
Im folgenden werden Informationen aus folgenden Quellen kombiniert:
https://edwards.sdsu.edu/research/c11-on-centos-6/ [EdwardLab] CentOS is great because it is secure, but not great because it doesn’t have the latest software. Here is how to install C++11 on CentOS6, and temporarily activate it in a shell. This does not change the default compiler and should cause less problems with your system (but that is not a money back guarantee … you are own your own if it does!)
https://www.softwarecollections.org/en/scls/rhscl/devtoolset-6/ [devtoolset-6] Developer Toolset is designed for developers working on CentOS or Red Hat Enterprise Linux platform. It provides current versions of the GNU Compiler Collection, GNU Debugger, and other development, debugging, and performance monitoring tools.
Im folgenden nun die Beschreibung, wie Sie temporär für das Build auf eine aktuellere GCC Toolchain wechseln.
Prüfen der aktuellen GCC version.
Installieren eines Packets für die Software-Collections
Aktualisieren
Die benötigten Packete für das Erstellen installieren.
Temporär für das Erstellen der Bibliothek in der Bash die Toolchain wechseln.
Prüfen der aktuellen GCC version.
Nun können Sie die Bibliothek wie gewohnt mit der Toolchain erstellen.