![]() |
C++ Code in Delphi verwenden?
Heyho,
ist es möglich in C++ geschriebene Funktionen / Klassen in Delphi zu verwenden und wenn ja, wie? Umgekehrt geht das ja soweit ich weiß, von daher dachte ich frage ich ma ob es auch so rum möglich ist, wie es mir jetzt nützen würde. :) Ich habe vor geraumer Zeit eine Wrapper-Klasse in C++ für einen Datenbankschnittstelle geschrieben (basierend auf OLE/DLL) und habe nun keine wirkliche Lust alles doppelt zu programmieren, einmal für C++ und einmal für Delphi. Danke im Voraus cu Patrick |
Re: C++ Code in Delphi verwenden?
Anhand der Anzahl der "Gucker" und "Antworter" gehe ich mal davon aus, dass sowas wohl nicht möglich ist, richtig?
Würde zumindest meine bisherigen Suchen bei Google, in der Hilfe usw. untermauern. :D |
Re: C++ Code in Delphi verwenden?
Hi,
hier eine Erklärung zur Nutzung von C++ Klassen in Delphi mit Hilfe von DLLs und deren (idealerweise virtuellen) Klassen: ![]() Gruß Assertor |
Re: C++ Code in Delphi verwenden?
Zitat:
Bitte pushe deine Threads nicht innerhalb von 24 Stunden! |
Re: C++ Code in Delphi verwenden?
Zitat:
ok da ich meine Klasse ja im Endeffekt nix anderes macht als COM-/Ole-Befehle für eine einfachere Benutzung zu kapseln (also keine tausend Zeilen logik je Funktion enthält) isses in meinem Falle dann wohl einfacher das Ganze in Delphi nachzuprogrammieren, da ich ja so oder so extra Funktionen mit ein paar Zeilen anlegen muss. Und Delphi Funktionen die C++ Funktionen Kapseln um dritte DLL-Funktionen zu benutzen - denke ich - sind etwas witzlos. :D Danke ;) @Luckie Ok, merk ich mir dann fürs nächste Mal. :) |
Re: C++ Code in Delphi verwenden?
Zitat:
Zitat:
Hintergrund ist dabei, wenn es komplexe Klassen(methoden) sind, wird es manchmal nicht so einfach möglich sein, diese in Delphi kurzerhand nachzubauen. Bedenke mal große Libraries (z.B. OpenSSL, libXSLT). Ohne einen solchen Ansatz, wie der gute Herr Velthuis (TeamB!) bereitgestellt hat, kann man sonst ja nur die exportierten Funktionen, Prozeduren nutzen - muß aber auf die komplexen Klassen meistens verzichten. Gruß Assertor |
Re: C++ Code in Delphi verwenden?
C++ Klassen kannst Du nicht direkt verwenden, bei Funktionen "kommt es drauf an". Schreibe Dir einen Wrapper für Deine C++ Klasse, der intern eine Instanz deiner C++ Klasse erzeugt und dann Zugriff auf die Memberfunktionen über eine "nackte" API in plain C ermöglicht. Diese nach aussen sichtbaren Funktionen kannst Du dann mittels entsprechender Deklaration auch von Delphi aus benutzen. Solltest Du mehrere Instanzen benötigen, so erweitere das plain C-Interface so dass der Aufrufer einzelne Instanzen erzeugen kann und für jede erzeugte Instanz einen Referrer mitbekommt. Mittels des Referrers kann dann über das plain C-Interface mit mehreren Instanzen der C++ Klassen gearbeitet werden. Dirty Hack, funzt aber passabel. Eleganter aber auch wesentlich arbeitsintensiver wäre es, das ganze via COM zu realisieren.
//EDIT: Jetzt hatte ich diesen Beitrag halb fertig mehrere Stunden offen und es hat sich im Prinzip in der Zwischenzeit schon gegessen :) |
Re: C++ Code in Delphi verwenden?
|
Re: C++ Code in Delphi verwenden?
Hi,
Zitat:
Die erste Antwort (Post #3) auf die Frage des Threaderstellers war der Link ;) Gruß Assertor |
Re: C++ Code in Delphi verwenden?
Zitat:
Verstanden hatte ich das schon so, also ich hätte im Prinzip das Schema "Delphi -> DLL (ursprünglich C++ Code) -> DLL (Datenbankanbindung)" umsetzen müssen. Und da kann ich auch gleich "Delphi -> DLL (Datenbankanbindung)" draus machen. *G* ... Also das Ganze jetzt immer von Seiten des Zugriffs aus gesehen, nich die Reihenfolge der Erstellung. Ich glaub da lag unser Verständigungsproblem. :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr. |
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