Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   C++ wo ist ofstream deklariert? (https://www.delphipraxis.net/167269-wo-ist-ofstream-deklariert.html)

zeras 20. Mär 2012 19:13

Delphi-Version: 5

wo ist ofstream deklariert?
 
Ich habe ein C++ Projekt bekommen und muss von dort einige Sachen nach Delphi konvertieren.
Dazu habe ich mir die Testversion von Visual Studio runtergeladen und versuche, in den 30 Tagen alles nötige umgeschrieben zu haben. Ich habe aber schon beim Compilieren verschiedene Fehlermeldungen. Einmal steht das was von fstream.h drin. Das habe ich schon in fstream geändert. Nun wird aber immer ofstream angemeckert. Da ich von C++ nicht viel Ahnung habe, wollte ich mal bei euch nachfragen, was das mit dem ofstream auf sich hat.

Luckie 20. Mär 2012 22:44

AW: wo ist ofstream deklariert?
 
Wie wäre es mit Google? "c++ ofstream". Erster Link das Beispiel: iostream

BUG 20. Mär 2012 22:52

AW: wo ist ofstream deklariert?
 
Wenn ich das richtig sehe, müsste ofstream eigendlich in <fstream> deklariert sein.

Ich glaube, es wäre hilfreich, wenn du mal den genauen Wortlaut der Fehlermeldung posten würdest.

EDIT: Ist der richtige Namespace (std?) eingebunden?
Code:
using namespace std;

Luckie 20. Mär 2012 22:57

AW: wo ist ofstream deklariert?
 
Tatsache. Aber fstream hat er ja schon inkludiert und in dem Google Beispiel war noch iostream inkludiert.

Robotiker 21. Mär 2012 08:53

AW: wo ist ofstream deklariert?
 
Zitat:

Zitat von zeras (Beitrag 1157588)
Einmal steht das was von fstream.h drin. Das habe ich schon in fstream geändert. Nun wird aber immer ofstream angemeckert.

Die Verwirrung dürfte daher rühren, dass dein Code etwas älteres C++ ist. Die Header mit dem .h sind aus der Zeit vor dem (1998er-) ISO-Standard. Das waren zeichenbasierte Streams, die neueren sind stringbasiert. Die Schnittstellen der Klassen dürften weitestgehend kompatibel sein, aber es gibt da sicher ein paar feine Unterschiede.

zeras 21. Mär 2012 18:02

AW: wo ist ofstream deklariert?
 
Zitat:

Zitat von Robotiker (Beitrag 1157675)

Die Verwirrung dürfte daher rühren, dass dein Code etwas älteres C++ ist. Die Header mit dem .h sind aus der Zeit vor dem (1998er-) ISO-Standard. Das waren zeichenbasierte Streams, die neueren sind stringbasiert. Die Schnittstellen der Klassen dürften weitestgehend kompatibel sein, aber es gibt da sicher ein paar feine Unterschiede.

Ja, der Code scheint schon alt zu sein.
Würde es da was bringen, wenn ich mir Visual C++ 6 zulege? Bei ebay gibt es günstige Bücher, wo das Programm mit beiliegt. Vielleicht würde ich da eines kaufen.

Robotiker 22. Mär 2012 07:42

AW: wo ist ofstream deklariert?
 
Hallo,

Zitat:

Zitat von zeras (Beitrag 1157824)
Ja, der Code scheint schon alt zu sein.

Dann werden wahrscheinlich alle VC++ Versionen ab 2002 und alle C++ Builder Versionen ganz ähnliche Fehler melden.

Zitat:

Zitat von zeras (Beitrag 1157824)
Würde es da was bringen, wenn ich mir Visual C++ 6 zulege?

:shock: :pale: Uggs, so eine Frage in einem Delphi-Forums. :twisted:
Die Frage ist, was man da kriegt. Das Teil hatte 6 Service-Packs und stellt damit immer noch XE2 locker in den Schatten. Wirklich benutzen kann man es erst von SP3 an.

Normalerweise sollten aber alle diese Unterschiede, wenn man sich halbwegs in C++ auskennt, behebar sein. Ich habe schon mal Code von Borland C++ 4.52 (1994) nach VC++ 2008 portiert, das ist nicht so schwierig.

Wenn das kein Code ist, der Bibliotheken wie die MFC verwendet, sollte das übrigens auch mit der VC10 Express-Version gehen.

BUG 22. Mär 2012 14:13

AW: wo ist ofstream deklariert?
 
Ich bin immer noch der Meinung, dass es am Namespace liegt. <fstream> legt die Klassen afaik in den Namespae std, "fstream.h" aber nicht.
Zitat:

Zitat von BUG (Beitrag 1157624)
Ist der richtige Namespace (std?) eingebunden?
Code:
using namespace std;


Robotiker 22. Mär 2012 14:26

AW: wo ist ofstream deklariert?
 
Ja, das sollte hinein.

Aber es sind, wie schon gesagt, nicht die exakt gleichen Klassen. Jedenfalls bei neueren Compilern, wo es gar kein fstream.h mehr gibt.

In der Übergangszeit hat man in der Tat in manchen Implementierungen in fstream einfach fstream.h innerhalb eines Namespaces inkludiert.

zeras 22. Mär 2012 19:29

AW: wo ist ofstream deklariert?
 
Zitat:

Zitat von Robotiker (Beitrag 1157875)

Dann werden wahrscheinlich alle VC++ Versionen ab 2002 und alle C++ Builder Versionen ganz ähnliche Fehler melden.

Zitat:

Zitat von zeras (Beitrag 1157824)
Würde es da was bringen, wenn ich mir Visual C++ 6 zulege?

:shock: :pale: Uggs, so eine Frage in einem Delphi-Forums. :twisted:

Wenn das kein Code ist, der Bibliotheken wie die MFC verwendet, sollte das übrigens auch mit der VC10 Express-Version gehen.

Ich möchte den Code nur von C++ nach Delphi portieren. Und da ich von C++ nicht viel Ahnung habe, wollte ich durch die Routinen debuggen und schauen, was diese machen.
Ich arbeite fast ausschließlich in Delphi und das soll auch so bleiben.

Offensichtlich geht es nicht mit den Express Versionen, da es dort keine Bibs wie stdafx.h etc. gibt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:41 Uhr.
Seite 1 von 3  1 23      

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