【问题标题】:Using the Standard Template Library with Visual Studio 4.0在 Visual Studio 4.0 中使用标准模板库
【发布时间】:2011-09-30 21:18:49
【问题描述】:

我正在尝试使用 Visual C++ Studio 4.0 版编译一些代码。

我知道我需要为这段代码使用标准模板库,这里是编译器因错误而停止的地方:

#include <fstream>

致命错误 C1083:无法打开包含文件:'fstream':没有这样的文件或目录

查看编译器安装盘,STL 文件没有随编译器一起安装,但我在安装盘上找到了它们所在的子目录。我从未使用过 STL,也不确定文件的确切放置位置。现在我已将它们放在源文件的子目录中,并将该目录添加到 Build->Settings->Resources->Additional Resource Include Directories。另请注意,STL 目录中没有名为 fstream 或 fstream.h 的文件。

read.me 中有这样的注释:

(1) STL 是 C++ 标准的容器、迭代器、算法部分 库,它不是完整的标准库。 (I/O 流、字符串、 等不包含在此包中。)

所以我有点困惑 - 我是否需要在某个地方获取其他源文件,或者我应该如何继续?感谢您的帮助!

【问题讨论】:

  • 如果人为可能,至少升级到 V4.2b。从 4.0 开始,您将需要 很多 变通方法才能让 STL 的古老版本完全模仿工作。 4.2b 包括一个合理地适应编译器的版本(据我回忆,还有很多其他修复)。不幸的是,4.2b 可能很难找到——它只发给购买订阅的人。
  • 我没有任何过时的东西,但我记得旧的 STL 包含仍然有 .h 扩展名,试试
  • 由于简单性和低开销,您还会遇到大量不符合古老标准的问题,这将使使用 21 世纪的最佳实践变得非常困难......
  • VC++4.0 是在 94 或 95 中发布的。这比标准化早了几年。你不会像现在这样用 C++ 编码,所以如果你坚持这种“简单性”,你只会碰壁。如果您不想要复杂的环境,请在记事本中编写代码并使用当前版本进行编译...它是免费的,您知道。
  • 看来我要升级了,谢谢大家的帮助。似乎 Visual Studio 2010 Express 是免费的,所以我会试一试。

标签: c++ visual-studio stl legacy-app


【解决方案1】:

Visual C++ 4.0 旧版!。它不能正确支持 STL。您应该至少使用 VC++ 6.0(它至少支持其中的大部分),或者最好还是使用 VC++ 2005 或 2008 速成版。或者您可以使用 GNU G++ 编译器(通过 MinGW)很好地实现 STL。

在制作 VC++ 4.0 时,C++ 尚未标准化(而 STL 是 C++ 标准库的子集),因此它不支持大多数 STL 功能或实现它们的非标准版本。

【讨论】:

  • STL != 标准库。 STL == 标准模板库,标准库的子集。
  • 知道。但是由于标准库没有标准化,而 STL 是标准库的子集,这意味着 STL 也没有标准化。
猜你喜欢
  • 2020-11-16
  • 2018-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-11
  • 2014-09-13
  • 2016-02-16
相关资源
最近更新 更多