c ++ - Hvilke filer erstattede strstrea.h og stdiostr.h?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at migrere nuværende kode fra vs6.0 til vs2010.


Under udarbejdelsen af ​​koden får jeg fejl, f.eks



  'Kan ikke åbne omfatte fil:' stdiostr.h ': Ingen sådan fil eller mappe'



Jeg har to filer inkluderet i koden ...



  1. stdiostr.h

  2. strstrea.h



Men disse to filer er ikke der i mit Visual Studio 2010, indeholder mappe ikke engang stdiostr og strstrea filer. Hvorimod i Visual Studio 6.0 's er mappen, er filerne til stede.


Så kan nogen fortælle hvilke filer jeg skal medtage for at få denne kode til at fungere med Visual Studio 2010?


Et eller andet sted på internettet jeg læser strstream er alternativet til strstrea. Er det sandt?

Bedste reference


Jeg tror, ​​at følgende links kan være nyttige til dit spørgsmål.



  Du bliver nødt til at fjerne eventuelle gamle iostream-overskrifter (fstream.h,
  iomanip.h, ios.h, iostream.h, istream.h, ostream.h, streamb.h og
  strstrea.h) du har medtaget i din kode og tilføj en eller flere af de
  nye Standard C ++ iostream overskrifter (<fstream>, <iomanip>, <ios>,
  <iosfwd>, <iostream>, <istream>, <ostream>, <sstream>, <streambuf>,
  og <strstream>, alt uden forlængelsen .h



http://support.microsoft.com/kb/154419[26]


http://msdn.microsoft.com/en-us/library/8h8eh904(v=vs.90).aspx[27]

Andre referencer 1



  Q7: Hvorfor får jeg 'compiler fejl C2371:' identifikator 'omdefinering, forskellige grundlæggende typer'?

  
  A7: I versioner af Visual C ++, der er tidligere end Visual C ++ 2005, forårsager blanding af standard C ++-overskrifter og gamle iostream-overskrifter denne fejl, selvom de er inkluderet i forskellige kildefiler. Følgende er de forskellige overskrifter:

  
  Gamle Iostream Headers
  FSTREAM.H IOMANIP.H
  IOS.H IOSTREAM.H
  ISTREAM.H OSTREAM.H
  STDIOSTR.H STREAMB.H
  STRSTREA.H



Kilde : http://support.microsoft.com/kb/154419[28]


Der er ikke en en-til-en kortlægning mellem disse og overskrifterne fra C ++ Standard Library.


Jeg anbefaler at fjerne referencer til disse filer og derefter indsætte de overskrifter, du har brug for til de specifikke erklæringer i standardoverskrifterne.


Du kan godt finde ud af, at nogle af de gamle typer er blevet udskrevet siden VC ++ 6.0 dage. http://en.cppreference.com/er en god kilde til information her. [29]