2012-02-21 84 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