【发布时间】: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