AGB  ·  Datenschutz  ·  Impressum  







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

C++ mit Delphi vermischen

Ein Thema von Dannyboy · begonnen am 4. Aug 2004 · letzter Beitrag vom 13. Aug 2004
Antwort Antwort
Seite 1 von 2  1 2      
Dannyboy

Registriert seit: 4. Aug 2003
Ort: Delphi-Heaven
418 Beiträge
 
Delphi 7 Personal
 
#1

C++ mit Delphi vermischen

  Alt 4. Aug 2004, 13:43
Hallo,
für ein demnächst anstehendes Projekt möchte ich in C++ DLLs erstellen und diese in Delphi
verwenden. Habt ihr vielleicht ein Beispiel, aus dem hervorgeht, wie man mit „Borland C++“ DLL-
Dateien erstellt und diese anschließend in Delphi verwendet?

Hat jemand schon mal so was gemacht?

DANNYBOY
  Mit Zitat antworten Zitat
DelphiFreund

Registriert seit: 29. Jul 2004
Ort: München
127 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: C++ mit Delphi vermischen

  Alt 4. Aug 2004, 13:47
Ich kenn mich C++ eigentlich nicht aus, aber DLL's werden, denke ich, auch nicht anders erstellt, einfach mit Parameter 'stdcall' deklarieren und genauso aufrufen.

Gruß DelphiFreund
Sandro
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#3

Re: C++ mit Delphi vermischen

  Alt 4. Aug 2004, 14:28
Nicht vergessen die Funktionsdeklarationen in einen
extern "C" {
einzuschliessen, damit das Name Mangling con C++ deaktiviert wird.
Keine Klassen im API!
  Mit Zitat antworten Zitat
Dannyboy

Registriert seit: 4. Aug 2003
Ort: Delphi-Heaven
418 Beiträge
 
Delphi 7 Personal
 
#4

Re: C++ mit Delphi vermischen

  Alt 12. Aug 2004, 13:01
Zitat von Robert Marquardt:
Nicht vergessen die Funktionsdeklarationen in einen
extern "C" {
einzuschliessen, damit das Name Mangling con C++ deaktiviert wird.
Keine Klassen im API!
Vielleicht ein einfaches Beispiel?
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#5

Re: C++ mit Delphi vermischen

  Alt 12. Aug 2004, 14:03
Auch ohne Klassen generiert der C++ Compiler unterschiedliche exportierte Namen je nachdem ob die C Funktion in
die "extern "C" {" Klammer eingeschlossen ist oder nicht.

Mit extern C wird beispielsweise "BlaBlubb" exportiert ohne "_BlaBlubb@P" Das nennt sich Name Mangling.
Es werden die Typen der Parameter in den Namen kodiert. De Unterstrich ist amuesanterweise eine alte C-Tradition.
Damit lassen sich gleiche Funktionen mit unterschiedlichen Namen unterscheiden (overload in Delphi).
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#6

Re: C++ mit Delphi vermischen

  Alt 12. Aug 2004, 14:24
Ach ja C++ Klassen sind komplett inkompatibel mit Delphi, deshalb nur einfache Funktionen exportieren.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

Re: C++ mit Delphi vermischen

  Alt 12. Aug 2004, 14:29
Zitat von Robert Marquardt:
Ach ja C++ Klassen sind komplett inkompatibel mit Delphi, deshalb nur einfache Funktionen exportieren.
Da hab ich aber schon was anderes gelesen! Angeblich soll das gehen, wenn man in beiden Sprachen die Klasse gleich deklariert hat und gewisse Richtlinien beachtet hat. Dann kann man über den Pointer auf eine Instanz der erstellten Klasse zugreifen können. Aber hab ich noch nicht selber gemacht.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#8

Re: C++ mit Delphi vermischen

  Alt 12. Aug 2004, 14:51
Zitat von Stevie:
Da hab ich aber schon was anderes gelesen! Angeblich soll das gehen, wenn man in beiden Sprachen die Klasse gleich deklariert hat und gewisse Richtlinien beachtet hat. Dann kann man über den Pointer auf eine Instanz der erstellten Klasse zugreifen können. Aber hab ich noch nicht selber gemacht.
Dazu muss aber die beiden verwendeten Compiler ziemlich gut kennen. Und ohne einige Hacks wird man nicht auskommen.
Kurz: Es geht 'irgendwie', aber der Aufwand lohnt sich in 99% der Fälle nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#9

Re: C++ mit Delphi vermischen

  Alt 12. Aug 2004, 15:00
Zitat von NicoDE:
Dazu muss aber die beiden verwendeten Compiler ziemlich gut kennen. Und ohne einige Hacks wird man nicht auskommen.
Kurz: Es geht 'irgendwie', aber der Aufwand lohnt sich in 99% der Fälle nicht.
In diesem Artikel wird erklärt, wie's gehen soll!
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Dannyboy

Registriert seit: 4. Aug 2003
Ort: Delphi-Heaven
418 Beiträge
 
Delphi 7 Personal
 
#10

Re: C++ mit Delphi vermischen

  Alt 12. Aug 2004, 15:10
Sehr interessant, das wäre nämlich ohnehin meine nächste Frage gewesen,
wie das Ganze im OOP-Bereich aussieht.
Ich kann mir konkret noch nicht vorstellen, wie man in C++ eine
DLL-Datei erstellt.
Das Importieren in Delphi verstehe ich schon ganz gut. Habt ihr
vielleicht ein kleines Beispiel, welches eine
einzige C++-Funktion exportiert?
  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 16:01 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