Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » problem mit <iostream.h> unter .net 2003

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
28.12.2003, 19:05 Uhr
~mc_ginley
Gast


hallo!

ich habe eine msvs 5.0 anwendung die dort ohne anstand kompiliert nach .net 2003 importiert. Der meckert mir an, dass er die includes
#include <iostream.h>
#include <fstream.h>
nicht finden kann. Nun hab ich ein wenig im MSDN rumgestöbert und irgendwo gelesen, dass die "alte" iostream library in .Net 2003 ersetzt wurde und sich gewisse details geändert haben.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_differences_in_iostream_implementation.asp

Nun soll man also das .h weglassen und die neuen headers nutzen. wenn ich das .h nun wegmache meckert er zwar nicht mehr über die fehlenden includes aber dafür kennt er trotzdem kein ofstream objekt wenn ich eins anlegen möchte:

ofstream dat;

-> undeklarierter bezeichner ...

kann mir da jemand weiterhelfen? ich würde, sofern möglich gerne die alten librarys benutzen, weil ich nur zeitweise hier .net hab und dann eigentlich wieder mit vs5 arbeite.

mfg

pete
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.12.2003, 19:31 Uhr
0xdeadbeef
Gott
(Operator)


Der neue C++-Standard verlangt, dass STL-Bezeichner im namespace std liegen. Du hast also zwei Möglichkeiten: 1.

C++:
#include <iostream>
#include <fstream>

using namespace std;

//...

ofstream dat;


Mit using namespace std; sagst du dem Compiler, dass er, wenn er einen Bezeichner in den lokalen und globalen namespaces nicht findet, auch den namespace std durchsuchen soll - und da findet er ofstream. Die andere (und m.E. sauberere) Lösung ist:

C++:
#include <iostream>
#include <fstream>

//...

std::ofstream dat;


Hier sagst du explizit, dass du ofstream aus dem Namespace std haben willst. Ich finde es sauberer, weil es einfacher zu lesen ist - man sieht sofort, wozu ein Bezeichner gehört.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: