我和程序在Debug版本上没问题,在Release版本上的运行也正常,就是在关闭程序时报出一个0xC0000005的错误.经验反复查找,基本确定错误发生的地方:
class CTreeCtrlView : public CFormView
{
....
};
CTreeCtrlView *pTreeCtrlView;然后我在另一个类上发送一个自定义消息:
pTreeCtrlView->SendMessage(WM_USER_RECREAT, 0, 0);
消息的处理函数是CTreeCtrlView的一个成员函数.
我试过将这个函数注空,但那个错误同样发生.如果我注掉这个消息发送语句,就不会报错,请问大概错在哪?PS:发送消息是在程序运行过程中,不是在关掉程序时候发的.

解决方案 »

  1.   

    WM_USER_RECREAT这个消息的相应函数是不是没写参数?我以前碰到过类似问题。
      

  2.   

    或者是LPARAM,WPARAM参数用反了.
    以前我碰到了.DEBUG正确.RELEASE就错了.
    很可能是这两个参数使用的有问题.
      

  3.   

    消息函数的用法:
    定义一个消息           #define WM_USER_RECREAT   WM_USER+110
    绑定一个消息处理函数   afx_msg LRESULT OnMyMsg(WPARAM wParam,LPARAM lParam);//头文件
                           ON_MESSAGE(WM_USER_RECREAT,OnMyMsg)//cpp 文件
    然后                   pTreeCtrlView->SendMessage(WM_USER_RECREAT, 0, 0);消息处理               LRESULT CxxxDlg::OnMyMsg(WPARAM wParam,LPARAM lParam)
                           {
                                ..........
                           }
      

  4.   

    谢谢诸位,是由于处理函数没有加参数引起的,解决办法:
    afx_msg LONG OnDelDlgMsg(WPARAM wP,LPARAM lP);
    加上这参数就OK了.
    谢谢,结帖!