2012-02-21 225 views
0

我正嘗試將當前代碼從vs6.0遷移到vs2010。哪些文件替換了strstrea.h和stdiostr.h?

在編譯時我收到錯誤的代碼,如

「無法打開包含文件:'stdiostr.h:沒有這樣的文件或目錄」

我已經包含了兩個文件在代碼...

  1. stdiostr.h
  2. strstrea.h

但是,這兩個文件不在我的Visual Studio 2010包含文件夾中,甚至沒有stdiostrstrstrea文件。而在Visual Studio 6.0的包含文件夾中存在這些文件。

那麼,任何人都可以告訴我應該包含哪些文件,以使此代碼與Visual Studio 2010一起使用?

因特網上的某處我讀strstreamstrstrea的替代方法。是真的嗎?

回答

0

Q7:爲什麼我會得到「編譯器錯誤C2371:'標識符'重新定義;不同的基本類型」? A7:早於Visual C++ 2005的Visual C++版本中,混合使用標準C++頭文件和舊iostream頭文件會導致此錯誤,即使它們包含在不同的源文件中也是如此。以下是不同的頁眉:

舊iostream頭 FSTREAM.H iomanip.h中 IOS.H IOSTREAM.H ISTREAM.H OSTREAM.H STDIOSTR.H STREAMB.H STRSTREA.H

http://support.microsoft.com/kb/154419

沒有這些和從C++標準庫的集管之間的一對一的映射。

我建議您刪除對這些文件的引用,然後在標準頭文件中插入特定聲明所需的頭文件。

從VC++ 6.0開始,您可能會發現某些舊類型已被棄用。 http://en.cppreference.com/在這裏是一個很好的信息來源。

1

我認爲以下鏈接可以幫助您解決問題。

你將不得不刪除任何舊iostream頭(fstream.hiomanip.hios.hiostream.histream.hostream.hstreamb.hstrstrea.h)已包含在你的代碼,並添加一個或多個 新的標準C++的iostream頭(<fstream><iomanip><ios><iosfwd><iostream><istream><ostream><sstream><streambuf>, 和<strstream>,都沒有.h擴展名)

http://support.microsoft.com/kb/154419

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