mfc42.dll 0xc0000005 access violation 不知道这个会是什么原因解决办法

mfc42.dll 0xc0000005 access violation 不知道这个会是什么原因
我的程序是通过发送一个消息
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"的同时报错
不知道是什么原因

------解决方案--------------------
PostMessage(UM_CHANGE); 

wparam和lparam参数没有写,函数在退栈时,把栈破坏了
PostMessage(UM_CHANGE, 0, 0);试试
------解决方案--------------------
把消息处理函数写成这样
void CMainFrame::OnChange( WPARAM wParam, LPARAM lParam );

否则在Release下要出错的。