刚想到一个主意,尝试用命令行运行一下,看到运行结果中输出了Assertion failed...的错误信息!直接运行时它估计只闪了一下,根本看不到错误信息,奇怪的是怎么没有人提问和解决这个问题呢?在此我将自己的方法写下来,供以后或他人参考,假如我的程序为Test.exe,在同目录中创建名为runTest.cmd的文件,编辑文件内容如下:
:执行同目录下的文件
Test.exe
pause
保存,双击运行会打开命令行窗口,虽然Test.exe同样会突然退出,但是可以看到输出的错误信息。也许有更简单直接的方法可以设置debug模式下assert的表现方式,也许大家的vs默认模式就没有这个问题,但是我的vs运行实在就是这样,若有更直接的方法欢迎大家指教啊
试试stackoverflow上提到的方法(Visual Studio exits on assertion failure with no error message):
In my case, the problem was that Configuration Properties -> C/C++ -> Code Generation -> Runtime Library was set to "Multi-threaded" for both the Debug and Release builds. The correct setting is "Multi-threaded Debug" for the Debug build and "Multi-threaded" for the Release Build.
试了,都改成MTd(原来是MDd,不是上文提到的MT或MD),但是没有用