Kann man eine DLL, die zur Verwendung von C++ Builder gedacht ist, auch unter Delphi verwenden, wenn ja wie?
Ich würde das mal grundsätzlich annehmen. Aber bevor ich da was versuche, frage ich zur Sicherheit mal nach.
[ Möchte vorausschicken, dass ich C-Code ein wenig lesen kann, aber ansonsten mit C-Programmierung Null-Erfahrung habe ]
Ich habe halt hier eine
DLL (libQPLLinux1612-86_64.so) für Linux, die für den Aufruf von C++-Programmen gedacht ist (es handelt sich hier um die DEBENU bzw. Foxit QuickPDF-Library).
Hier habe ich neben der .so-Datei folgende Dateien:
FoxitQPLLinuxDPP1612.h datei (C++ Import Header) (ca. 2000 Zeilen)
FoxitQPLLinuxDPP1612.cpp datei (C++ import Class) (ca. 7000 Zeilen)
Ich würde wahrscheinlich nur 1-2 Dutzend Funktionen aus der
DLL benötigen.
In der .h -(Header) Datei stehen Dinge wie
Code:
"int UnlockKey(const std::wstring& LicenseKey);"
in der cpp stehen dann die Funktionen, wie z.B.:
Code:
"int FoxitQPLLinuxCPP1612::UnlockKey(const std::wstring& LicenseKey)
{
if (loadError) return 0;
return FoxitQPLUnlockKey(instanceID, WideStringParm(LicenseKey));
}"
Für die Windows-Version gibt es auch eine Delphi-Import-Datei für eine Windows-QPDF-
DLL. Interessanterweise steht dort: "// This file was generated by an automated process".
Man kann da mit Delphi also auch die
DLL verwenden (statt der auch existierenden
DCU-Version). Für die Linux-
DLL-Version gibt es sowas leider nicht.
Aber vom Grundsatz müsste ich doch einfach den C++Code in Pascal umschreiben können (und mich da an der
DLL-Implementierung für Windows orientieren) und dann sollte die .so doch auch mit Delphi nutzbar sein, oder? Geht ja zumindest mit FMX-Linux auch, wo ja auch eine .so-Datei zum Einsatz kommen.
Gibt es da evtl. irgendwelche Generatoren, die einem den C++Code in Delphi-Pascal umwandeln?