关于vs2013C++MFC程序debug运行正常但release运行结果错误

网上说因为变量未初始化导致的
但是检查过变量初始化后还是不行

debug和rerelease的区别主要就是变量初始化的问题,还有一些内存溢出,在debug下没问题,但是到了relaease下就过不去了。还有就是assert

你可以单步调试一下你的Release版程序,在release版的Project settings里,把C/C++设置的debug info 设为Program database,在link设置里选Generate debug info, 这样你就可以看着源码来调试release版。由于release版一般是优化过的,所以有时你检查变量数值时所显示的数值不一定就是该变量当前的数值,但是程序执行顺序是不变的,如果真的要看其准确的数值的话,用反汇编来看,也许是在某个register里。 调试完毕之后,把link设置的generate debug info给去掉,重新link一下就行了。

你可能感兴趣的:(mfc,c++)