2012-02-21 29 views
0

現在のコードをvs6.0からvs2010に移行しようとしています。strstrea.hとstdiostr.hを置き換えたファイルはどれですか?

私は、このような

などのエラーは、「オープンファイル含めることはできませんそのようなファイルやディレクトリはありません: 『stdiostr.h』」取得していたコードのコンパイルしながら、私が含まれている2つのファイルを持っている

をコード中...

  1. stdiostr.h
  2. strstrea.h

しかし、これらの2つのファイルはVisual Studio 2010のインクルードフォルダにはありません。stdiostrstrstreaファイルもありません。 Visual Studio 6.0のインクルードフォルダには、ファイルが存在します。

このコードをVisual Studio 2010で使用するには、どのファイルを含める必要がありますか?

インターネットでは、strstreaの代わりにstrstreamを読んでいます。本当ですか?

答えて

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++標準ライブラリからヘッダ間の1対1のマッピングがありません。

これらのファイルへの参照を削除し、特定の宣言に必要なヘッダーを標準ヘッダーに挿入することをお勧めします。

古いバージョンの一部は、VC++ 6.0以降で廃止されていることがよくあります。 http://en.cppreference.com/はここでの情報源です。

1

あなたの質問には次のリンクが役立つと思います。あなたはあなたのコードに含まれ、新しい の一つ以上を追加している(fstream.hiomanip.hios.hiostream.histream.hostream.hstreamb.h、および strstrea.h)任意の古いiostreamヘッダーを削除する必要があります

標準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

関連する問題