我用CreateThread()建立了一个线程,在线程中调用了一个MyDispMsg()的函数来向程序的其它窗口发消息,最开始一直用DEBUG模式调试一直没有问题,今天编译成RELEASE模式后,发现向其它窗口发送的自定义消息会出错,程序异常退出??!!而发送系统自带的消息(如WM_CLOSE)却没有问题??为什么啊???急死偶了,。。在线等待!!!

解决方案 »

  1.   

    消息映射函数的参数和返回值有没有写错???
    必须是如下格式:
    LRESULT MsgFun( WPARAM , LPARAM )
      

  2.   

    我只带了一个参数,如:LRESULT MsgFun( WPARAM )但程序的确是执行到了自定义消息指定的函数的,好像是执行完自定义消息的函数后,没等sendmessage或postmessage返回就挂了。
      

  3.   

    哦,我知道了,原来是我自定义函数定义的不规范造成了,改为LRESULT xxxx(WPARAM,LPARAM)的格式就OK了!死VC,害得我调了半天!!
      

  4.   

    只带一个参数是绝对会出问题的,会引起堆栈崩溃,自然也就报错了。
    这个问题也正是在Debug版中不出现,Release版中出现的问题之一。一定要按照上面的格式带两个参数!!!