Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.530 Beiträge
 
Delphi 11 Alexandria
 
#1

C++ DLL in Delphi unter Linux verwenden

  Alt 20. Jan 2019, 18:50
Delphi-Version: 5
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?

Geändert von Harry Stahl (21. Jan 2019 um 00:32 Uhr)
  Mit Zitat antworten Zitat