Vc程序Release版本报错的问题

vc程序经常遇到Debug版本运行正常,Release版本运行报错的问题,怎么调试分析也找不到问题根源。

如果代码里用到了sendmessage或者postmessage发送自定义消息,那么很有可能就是消息处理函数的定义出了问题:



afx_msg void UpdateMyData();  // error


忽略了返回值和参数,返回值定义成void没有影响,但是如果不显式定义参数则会造成问题:在Debug版本中运行正常,在Release版本中使用SendMessage()发送同一条自定义消息时,第二次会产生一般保护性错误!只要加上参数的显式定义就没有问题了。正确的定义如下:


afx_msg LRESULT UpdateMyData(WPARAM wParam,LPARAM lParam);


消息发送函数:

SendMessage(WM_MYID, (WPARAM) para, 0);
PostMessage(WM_MYID, (WPARAM) para, 0);




[本日志由 cnfgg 于 2009-06-26 05:42 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: vc sendmessage postmessage 消息映射
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.