Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi C++ Code in Delphi verwenden? (https://www.delphipraxis.net/116474-c-code-delphi-verwenden.html)

Errraddicator 30. Jun 2008 10:52


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

Errraddicator 30. Jun 2008 12:16

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

Assertor 30. Jun 2008 12:20

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:
http://rvelthuis.de/articles/articles-cppobjs.html

Gruß Assertor

Luckie 30. Jun 2008 12:21

Re: C++ Code in Delphi verwenden?
 
Zitat:

Zitat von Errraddicator
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

Du hast deine Frage gerade mal vor ein ein halb Stunden gestellt. Was erwartest du?

Bitte pushe deine Threads nicht innerhalb von 24 Stunden!

Errraddicator 30. Jun 2008 12:35

Re: C++ Code in Delphi verwenden?
 
Zitat:

Zitat von Assertor
Hi,

hier eine Erklärung zur Nutzung von C++ Klassen in Delphi mit Hilfe von DLLs und deren (idealerweise virtuellen) Klassen:
http://rvelthuis.de/articles/articles-cppobjs.html

Gruß Assertor

Hiho,

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. :)

Assertor 30. Jun 2008 13:32

Re: C++ Code in Delphi verwenden?
 
Zitat:

Zitat von Errraddicator
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.

Das stimmt. Wenn es wenig ist, lohnt sich meist das Nachbauen.

Zitat:

Zitat von Errraddicator
Und Delphi Funktionen die C++ Funktionen Kapseln um dritte DLL-Funktionen zu benutzen - denke ich - sind etwas witzlos.

Da hast Du den Text falsch verstanden. Es geht um das Kapseln von C++ Klassen, die dann per DLL für Delphi bereitgestellt werden. Also nicht DLL > C++ > Delphi, sondern C++ > DLL > Delphi.

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

OldGrumpy 30. Jun 2008 16:55

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 :)

mkinzler 30. Jun 2008 17:26

Re: C++ Code in Delphi verwenden?
 
http://rvelthuis.de/articles/articles-cppobjs.html

Assertor 30. Jun 2008 17:38

Re: C++ Code in Delphi verwenden?
 
Hi,

Zitat:

Zitat von mkinzler
http://rvelthuis.de/articles/articles-cppobjs.html

Thread gelesen?

Die erste Antwort (Post #3) auf die Frage des Threaderstellers war der Link ;)

Gruß Assertor

Errraddicator 1. Jul 2008 08:00

Re: C++ Code in Delphi verwenden?
 
Zitat:

Zitat von Assertor
Da hast Du den Text falsch verstanden. Es geht um das Kapseln von C++ Klassen, die dann per DLL für Delphi bereitgestellt werden. Also nicht DLL > C++ > Delphi, sondern C++ > DLL > Delphi.

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

Habe mich wohl etwas doof ausgedrückt. *G*
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 03:38 Uhr.
Seite 1 von 2  1 2      

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