Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi und C++ Builder, Verwendung der Klassen (https://www.delphipraxis.net/190027-delphi-und-c-builder-verwendung-der-klassen.html)

Bambini 23. Aug 2016 09:23

Delphi und C++ Builder, Verwendung der Klassen
 
Kleine Frage an die Kompatibilität Delphi und C++ Builder:

- Soweit ich gelesen habe, kann der C++ Builder die Delphi Units (DCU) verwenden oder gibt es da Einschränkungen?
- Geht das auch umgekehrt? Kann Delphi auch C++ Units verwenden und sich von C++ Klassen ableiten?

Der schöne Günther 23. Aug 2016 09:45

AW: Delphi und C++ Builder, Verwendung der Klassen
 
sourcecode.pas-Datei ins Projekt aufnehmen,
Code:
#include <sourcecode.hpp>
, fertig.

Umgekehrt geht's natürlich nicht, da es in C++ Dinge gibt die man in Delphi einfach nicht abbilden kann.

mensch72 23. Aug 2016 09:45

AW: Delphi und C++ Builder, Verwendung der Klassen
 
C++ Builder hat ja quasi RTL,VCL und FMX in Pascal von Delphi "geerbt" und kann im Prinzip auch weiter alles was Pascal ist schlucken und erzeugt sich auch die passenden HPP files.
C++Builder reicht norfalls um auch etwas PAS-Source mit zu übersetzen (nur der Editor mit Formulardesigner weigern sich proforma auch PAS basiert was direkt zu bearbeiten)

Umgedreht können DelphiBasisProjekte nicht wirklich gut mit CPP/OBJ Files umgehen. Man braucht also RadStudio um Delphi&C++ Sachen zu editieren und in Mischprojekten definiere&schreibe man das Basisprojekt(Formular) in C++. Und wenn man dann endlich geschafft hat, Delphi mit C++ Dateiweise zu mischen, wird man mit dem C++ Source niht mehr glücklich, denn derist dann definitiv ausserhalb von RadStudio zu nix mehr portabel.

=> etwas PAS/Delphi Komponenten in C++Builder ja.
=> C++ Zeug per RadStudio direkt in Delphi eingemischt, besser nein!... da lieber klassische DLLs, das funktioniert auch mit C++Zeug von VisualC usw.

Der schöne Günther 23. Aug 2016 09:49

AW: Delphi und C++ Builder, Verwendung der Klassen
 
Zitat:

Zitat von mensch72 (Beitrag 1345466)
Und wenn man dann endlich geschafft hat, Delphi mit C++ Dateiweise zu mischen, wird man mit dem C++ Source niht mehr glücklich, denn derist dann definitiv ausserhalb von RadStudio zu nix mehr portabel.

Sehe ich auch so. Wenn man richtig wild mischen will, dann besser mit DLLs. Das hat Skype für Win32 früher meine ich auch so gemacht: Die Hälfte war Delphi, die andere C++ (Builder?).

Denn selbst wenn der Compiler meinetwege Clang-basiert ist, der Code ist dann nicht mehr C++, sondern "Embarcadero C++".

Bambini 23. Aug 2016 12:22

AW: Delphi und C++ Builder, Verwendung der Klassen
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1345467)
Denn selbst wenn der Compiler meinetwege Clang-basiert ist, der Code ist dann nicht mehr C++, sondern "Embarcadero C++".

D.h. es ist nicht möglich eine C++Builder Klasse in Delphi weiter zu verwenden bzw. eine weitere Ableitung davon zu machen?

Der schöne Günther 23. Aug 2016 12:51

AW: Delphi und C++ Builder, Verwendung der Klassen
 
Also ich wäre jetzt überrascht wenn das ginge.

In C++ gehen einfach Dinge die in Delphi nicht möglich sind. Umgekehrt ist das ebenso, aber C++ kann das mehr oder weniger abbilden/emulieren (z.B. sets). Ich wüsste nicht wie man in Delphi z.B. Mehrfachvererbung machen sollte.

Wikipedia sagt:
Zitat:

C++Builder projects can include Delphi code. The Delphi compiler emits C++ headers, allowing C++ code to link to Delphi classes and methods as though they were written in C++. The reverse (C++ code being used by Delphi) is not possible.
Hier noch ein schlauer Link:
http://stackoverflow.com/q/19547495/2298252
Da wird die Geschichte ganz klassisch mit COM-Interfaces angesprochen. Da könnte es dann auch ein anderer C++-Compiler sein.

mensch72 23. Aug 2016 12:59

AW: Delphi und C++ Builder, Verwendung der Klassen
 
Zitat:

Zitat von Bambini (Beitrag 1345505)
D.h. es ist nicht möglich eine C++Builder Klasse in Delphi weiter zu verwenden bzw. eine weitere Ableitung davon zu machen?

das hängt von der Basisklasse und der verwendeten C++ Funktionalität ab...
wenn von TObject abgeleitet und nix mit "inline" oder BitTypen gemacht, sowie strings möglichst nur als CharArray... dann kann man das in Delphi normal weiterverwenden

Ganz böse sind ist aber das in C++ durchaus übliche statische Variablen anlegen von Klassentypen... das mag der Speichermanager von Delphi garnich, da muss man auch in C++ alles mit new anlegen und selbst wieder freigeben. Auch mit C++ Objekten, die auf Mehrfachableitungen basieren kann Delphi nicht mehr viel anfangen.

Ich belasse es bei etwas (GUI)Delphi in/für C++Builder, denn wenn ich C++ schreibe hat das seinen Sinn, weil da eben einges an API und LowLevel-Sachen geht was ich so nicht 1:1 ohne nachzudenken in Delphi hinbekomme.

Bambini 23. Aug 2016 13:39

AW: Delphi und C++ Builder, Verwendung der Klassen
 
Viele Dank für die Infos.
Wird eine C++ Builder unit in Delphi auch einfach im uses eingebunden oder ist das anders?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:51 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