在VS2012的静态链接版本中似乎存在问题。在旧系统上启动控制台应用程序会导致异常,只要使用了流(streams),虽然新系统没有任何问题。
为了重现此错误,只需:
- 在VS2012中创建一个新的控制台应用程序
- 在主函数中添加行
std :: ofstream f; 或
std :: cout <<“Hello World”; (根据需要包括fstream或iostream)
- 切换到v110_xp工具集(如果Windows XP需要)
- 切换到静态链接库(/ MT)
- 在旧系统上启动exe 总是有一个例外。
删除带有ofstream或cout的行始终解决问题。
切换到动态链接运行时库(/ MD)始终解决问题。
对于ofstream,在速度优化(/ O2)而不是大小优化(/ O1)或无优化(/ Od)下解决了问题。
有人有想法或提示吗?提前感谢。