Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#2

Re: "C++-Objektdateien erzeugen" --> Delphi + C

  Alt 16. Jan 2007, 00:52
Die Objektdateien ist nur das Ablageformat dieses "Zwischenformats" zwischen Compiler und Linker, das hat keine Aussagekraft. Der C++Builder kann auch Delphi Dateien kompilieren (da der Delphi Compilier mit bei ist) und erstellt aus den Delphi/Pascalquellen die .hpp Header Dateien für die C++ Seite. Dabei ist beim C++Builder die gesamte VCL als Quelldateien und Packages in Delphi dabei und vorbereitet. Dabei ist es ohne Probleme möglich C++ und Delphi Komponenten und Units in einem C++Builder Projekt zu mischen. Da Borland eine Möglichkeit geschaffen hat alle besonderen sprachlichen Elemente von Delphi (dynamische Arrays, Set Of, etc) auf C++ abzubilden. Anders herum geht dies leider nicht, da du mit dem Präprozessor und weiteren sprachlichen Mitteln (dich denke da z.B. an Iteratoren, Templates, etc) welche nicht ohne Probleme oder einfach in Delphi abzubilden sind. Die C++ Sprache ist schon allein mit dem Präprozessor sprachlich umfangreicher bzw. unbeschränkter als Pascal/Delphi, welche eine strengere Typenreinheit hat.
Kleines Beispiel: Wie sollte Delphi mit einer C++ Unit umgehen (angenommen, er könnte es compilieren, oder du würdest ihn (den Linker) direkt mit einem .OBJ füttern), welche einen std::vector<> zurück gibt. Wie willst du sowas in Delphi ansprechen/nutzen? Auch Referenzen von Objekten, der (automatische) Copy-Constructor (sogar bei Standardtypen), etc oder der Export von Klassen in einer DLL Funktion.

Sprachlich gesehen ist "The Delphi Language" einfacher gebaut (was nicht schlechter heissen muss, sie hat andere Vorteile wie Typensicherheit, etc) und kann von der komplexeren Sprache leichter nachgebildet/angesprochen werden. Umgekehrt geht dies schlechter.

Wir stehen zZ auch vor diesem grundlegenden Problem. Wir würden am liebsten C++ Libraries oder LIB/BPLs nutzen, aber dann würden wir alle Delphi Nutzer ausschliessen und viele Mitarbeiter müssten erstmal eine neue Sprache lernen. Aber anderseits fehlen uns nötige Implementation in Delphi, z.T. weil diese einfach nicht möglich sind. Auch hier bleibt uns nur der Weg über DLLs...
  Mit Zitat antworten Zitat