Delphi-Units (*.dcu, *.obj, etc. was es sonst noch gibt) in C++ einbinden
-
Die *.pas-Dateien sind nicht vorkompiliert sondern der reine Quellcode. Und genau diesen benötigst du, um Delphi-Units in C++Builder-Projekte einzubinden. Möglich ist das, weil beim BCB ein Delphi-Compiler mitgeliefert wird, der aber eben den Quellcode benötigt, keine vorkompilierten Objekte.
Mit den *.dcu (Delphi Compiled Unit) etc. kannst du nichts anfangen, ausser in Delphi selbst. Siehe auch den Abschnitt "Komponenten" in der BCB-FAQ hier.
-
Das ändert aber nichts an der Meldung 'invalid stream format', wenn ich die *.pas-Dateien versuche zu öffnen;
-
Und du glaubst/hoffst wirklich, dass dir bei diesen spärlichen Informationen jemand helfen kann? Du musst uns schon sagen, was genau du wie und womit machst bzw. versuchst.
-
Jansen schrieb:
Und du glaubst/hoffst wirklich, dass dir bei diesen spärlichen Informationen jemand helfen kann? Du musst uns schon sagen, was genau du wie und womit machst bzw. versuchst.
Nein, ehrlich gesagt nicht! Ich glaube aber, dass ihr das Thema schwerer einstuft, als es ist!; Denn ich weiß, dass es so eine CompilerDirektive gibt, mit der man irgendeine dieser vielen Dateien, die bei der Compilierung von Delphi-Units entstehen in C++ einbinden kann!; die Frage ist nur, 1.) wie heißt die CompilerDirektive und 2.) wie heißt die Dateiendung, nach der ich suchen muss; auf die 2. Frage hat mir ja schon jemand geantwortet: *.pas;
aber noch mal für ALLE: Es geht mir darum, Delphi-Units (also *.pas-Dateien) in C++ einzubinden, und zwar so, dass ihr Inhalt in C++ (oder wie das bei den C-Plattformen heißt) angezeigt wird, und nicht in Pascal!;MfG
C++User4
-
so, dass ihr Inhalt in C++ (oder wie das bei den C-Plattformen heißt) angezeigt wird, und nicht in Pascal
Du willst, dass der pascal-Code nach C/c++ übersetzt wird?
Also aus
function foo(i : integer):integer
begin
result := i*2;
endsoll
int foo(int i)
{
return i*2;
}werden?
Dann brauchst Du irgendwie ein übersetzerprogramm. Sowas gibst sicherlich ob man damit aber auch 'ersthaft' was anfangen kann, wag ich zu bezweifeln.
Ansonsten muss Du im C++Builder einfach die pas-Datei Deinem Projekt hinzufügen. Beim Compilieren wird dann automatisch ein header dazu generiert (Endung hh) und so kannst Du das ansprechen.
-
kartoffelsack schrieb:
Beim Compilieren wird dann automatisch ein header dazu generiert (Endung hh)
*.hpp
Aber das steht ja alles in den o.g. FAQ-Beiträgen.
-
kartoffelsack schrieb:
...musst Du im C++Builder einfach die pas-Datei Deinem Projekt hinzufügen. Beim Compilieren wird dann automatisch ein header dazu generiert (Endung hh) und so kannst Du das ansprechen.
Ja, das ist mir schon klar, aber wenn ich genau das versuche, nämlich die pas-Datei in C++ zu laden, wird diese Meldung 'invalid stream format' angezeigt;
C++User4
-
Vielleicht lässt du dich ja mal herab, ein paar konkrete Angaben zu machen.
Z.B. welchen Compiler/Version du benutzt, was genau du mit "in C++ laden" meinst, um welche Delphi-Units speziell es geht usw.
Also alles Mögliche, was einem Aussenstehenden helfen könnte, dein Problem nachzuvollziehen.
-
Also, ich verwende den Borland C++ Builder 4 engl. Prof. (deswegen auch 'C++User4'
; und in den möchte ich jetzt Delphi7Personal-Dateien laden, d.h. Menü: Datei => Öffnen, und zwar *.pas-Dateien in C++-Sprache convertiert; und zu diesem Zweck soll es eine CompilerDirektive geben...;
Damit wäre doch eigentlich alles geklärt, oder?
Und mein Problem ist jetzt: Wie? Wenn mit etwas anderem als C++, Womit?MFG
C++User4;
-
Das mit dem Konvertieren und der Compilerdirektive kannst du dir, wie bereits gesagt, abschminken. Das machst du entweder selbst oder du suchst dir ein entsprechendes Übersetzungsprogramm; der BCB hilft dir dabei nicht weiter.
Das Einbinden der Pascal-Dateien wurde ja hier und in o.g. FAQ-Beiträgen bereits erläutert, ggf. solltest du noch alle nicht-pas-Dateien aus dem entsprechenden Verzeichnis entfernen, damit der BCB auch garantiert seine eigenen obj-Dateien usw. benutzt.
-
Hi,
das Prob sind nicht die *.pas Dateien sondern die Forumlare die dazugehören!Die Fehlermeldung gibt's auch wenn man z.B. BCB5 Formulare mit BCB4 öffnene will! Irgndwo gabs da mal n Konvertierprogramm, das dann die Formular wieder in ein verständliches Vormat übersetzt hat! Keine Ahnung wo das ist!
MfG
Alexander Sulfrian