AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

C++ Code in Delphi verwenden?

Ein Thema von Errraddicator · begonnen am 30. Jun 2008 · letzter Beitrag vom 1. Jul 2008
Antwort Antwort
Seite 1 von 2  1 2      
Errraddicator

Registriert seit: 26. Jun 2008
161 Beiträge
 
Delphi 2007 Professional
 
#1

C++ Code in Delphi verwenden?

  Alt 30. Jun 2008, 10:52
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
  Mit Zitat antworten Zitat
Errraddicator

Registriert seit: 26. Jun 2008
161 Beiträge
 
Delphi 2007 Professional
 
#2

Re: C++ Code in Delphi verwenden?

  Alt 30. Jun 2008, 12:16
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.
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#3

Re: C++ Code in Delphi verwenden?

  Alt 30. Jun 2008, 12:20
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
Frederik
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: C++ Code in Delphi verwenden?

  Alt 30. Jun 2008, 12:21
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.
Du hast deine Frage gerade mal vor ein ein halb Stunden gestellt. Was erwartest du?

Bitte pushe deine Threads nicht innerhalb von 24 Stunden!
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Errraddicator

Registriert seit: 26. Jun 2008
161 Beiträge
 
Delphi 2007 Professional
 
#5

Re: C++ Code in Delphi verwenden?

  Alt 30. Jun 2008, 12:35
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.

Danke


@Luckie
Ok, merk ich mir dann fürs nächste Mal.
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#6

Re: C++ Code in Delphi verwenden?

  Alt 30. Jun 2008, 13:32
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 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
Frederik
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#7

Re: C++ Code in Delphi verwenden?

  Alt 30. Jun 2008, 16:55
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
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: C++ Code in Delphi verwenden?

  Alt 30. Jun 2008, 17:26
http://rvelthuis.de/articles/articles-cppobjs.html
Markus Kinzler
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#9

Re: C++ Code in Delphi verwenden?

  Alt 30. Jun 2008, 17:38
Hi,

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
Frederik
  Mit Zitat antworten Zitat
Errraddicator

Registriert seit: 26. Jun 2008
161 Beiträge
 
Delphi 2007 Professional
 
#10

Re: C++ Code in Delphi verwenden?

  Alt 1. Jul 2008, 08:00
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:43 Uhr.
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