VS2012的静态链接版好像有问题。每当使用流时,在旧系统上启动控制台应用程序都会导致异常,尽管新系统根本不会引起任何问题。要重现此错误,足以
- 在 VS2012 中新建一个控制台应用程序
- 添加行
std::ofstream f;
或std::cout << "Hello World";
在主函数中(根据需要包括 fstream 或 iostream) - 切换到 v110_xp 工具集(如果 Windows XP 需要)
- 切换到静态链接库 (/MT)
- 在旧系统上启动 exe 总是有异常。
使用 ofstream 或 cout 删除行总是可以解决问题。切换到动态链接的运行时库 (/MD) 始终可以解决问题。在 ofstream 的情况下,使用大小优化 (/O1) 或不优化 (/Od) 代替速度优化 (/O2) 可以解决问题。
有没有人有想法或提示?提前致谢。