MFC release版本下,程序每次运行结果不同

在解析10000个字符串时,release版本每次解析的结果都不同,但debug相同,在网上找了一些原因,

1. release版本中的变量一定要初始化,因为debug下,若变量未初始化,默认为0xcc,此值是一个中断,当系统检测到此值时,可触发中断,而release下,是没有默认值的,是个随机值,所以,一旦变量在未初始化之前调用,就有可能导致程序出错。

2.消息响应函数,release下,声明时一定要加LPARAM和WPARAM。如:

afx_msg void aa_bb(LPARAM, lParam, WPARAM wParam);

3.对照debug下的设置来修改release下的设置,我的是这种方法改好的,但不知道这样对不对,能不能这样改。

将release版本的配置的相关项改成与下面两张图红圈一样即可。

MFC release版本下,程序每次运行结果不同

MFC release版本下,程序每次运行结果不同