Debug版运行正常而Release版出错的原因和解决方法
2009-04-27 11:19
525 查看
1、如果自定义消息处理函数没有参数,在发送消息时也要加上WPARAM/LPARAM参数。
SendMessage(WM_MYMESSAGE, 0 ,0);
2、如果有两个功能类似的自定义消息处理函数,在发送消息时不小心发错了消息名称
,也会造成Debug版运行正常而Release版出错甚至报异常。
转一篇:
http://www.cnitblog.com/ffan/archive/2007/06/21/28891.html
原因:
先看ON_MESSAGE定义:
ON_MESSAGE(message
这个宏需要两个参数, 如果消息响应函数并没有参数编译器在压栈出栈时就会出错。而Debug版运行时编译器会自动加一些测试代码,所以不会造成堆栈的破坏。
解决方法:
方法1:把ON_MESSAGE替换成ON_MESSAGE_VOID(头文件<AFXPRIV.H>)
方法2:修改消息响应函数:afx_msg void OnXXXX(WPARAM wParam, LPARAM lParam)
SendMessage(WM_MYMESSAGE, 0 ,0);
2、如果有两个功能类似的自定义消息处理函数,在发送消息时不小心发错了消息名称
,也会造成Debug版运行正常而Release版出错甚至报异常。
转一篇:
http://www.cnitblog.com/ffan/archive/2007/06/21/28891.html
原因:
先看ON_MESSAGE定义:
ON_MESSAGE(message
, memberFxn
)
这个宏需要两个参数, 如果消息响应函数并没有参数编译器在压栈出栈时就会出错。而Debug版运行时编译器会自动加一些测试代码,所以不会造成堆栈的破坏。解决方法:
方法1:把ON_MESSAGE替换成ON_MESSAGE_VOID(头文件<AFXPRIV.H>)
方法2:修改消息响应函数:afx_msg void OnXXXX(WPARAM wParam, LPARAM lParam)
相关文章推荐
- 今天解决了的一个DEBUG运行正常RELEASE出错的问题!
- ARM:Release版本和Debug版本运行不一致的一种可能原因以及解决方法
- 谈debug版本可以正常运行,而在release下运行出错之原因及避免类似情况发生
- VS中使用SSE DEBUG正常RELEASE下出错的解决方法
- VC++ 6.0 Debug 正常 Release出错 解决办法
- vc中debug版程序正常但release版崩溃的解决方法
- debug 版本正常 release版本出错的原因之一
- vc中debug版程序正常但release版崩溃的解决方法
- Debug下正常运行,但调成Release时遇到三个问题及其完美解决!
- VC在debug运行正常,release崩溃的解决办法
- cvCopy函数调试时正常,在debug或release下运行出错,提示cvCopy大小不匹配
- Curl的curl_easy_perform函数在Debug正常,但在Release崩溃的解决方法
- vs2015在Debug模式下运行出现"应用程序无法正常启动(0x000007b)"的错误解决方法
- ffmpeg在Win7 VS2010中debug通过,release出错的问题解决方法
- debug 版本正常,release版本出错的一种解决
- crontab 不能正常运行的原因分析方法
- VS2010 F5调试时出现:“ 尝试运行项目时出错:未捕获通过反射调用的方法引发的异常”解决
- Jbpm4.3 工程运行出错以及中文无法识别解决方法
- Win10提示应用无法在电脑上运行的原因及可行解决方法
- 《Visual C++深入详解》里面的代码在VS2010里面运行出错 解决方法