我的程序是通过发送一个消息
PostMessage(UM_CHANGE);
然后在
void CMainFrame::OnChange()
{
CLg600App* pApp = (CLg600App*)AfxGetApp();
pApp->ChangeToLib();
}
执行的现在的问题是,ChangeToLib();这个过程,执行第一编没问题,执行了第二遍的最后,已经finish了,却被告知出错:mfc42.dll 0xc0000005 access violation如果我在PostMessage(UM_CHANGE);后面加上 MessageBox("1");
那么第一遍的结束就出错,在出现“1"的同时报错
不知道是什么原因

解决方案 »

  1.   

    PostMessage(UM_CHANGE); wparam和lparam参数没有写,函数在退栈时,把栈破坏了
    PostMessage(UM_CHANGE, 0, 0);试试 
      

  2.   

    把消息处理函数写成这样
    void CMainFrame::OnChange( WPARAM wParam, LPARAM lParam );否则在Release下要出错的。 
      

  3.   

    我是Dubug OK Release 崩溃,弄了整整一天,就是自定义消息一定要加上WPARAM wParam,LPARAM lParam)void CProcessWatchDlg::OnHeartBeat(WPARAM wParam,LPARAM lParam)