读书人

mfc42.dll 0xc0000005 access violati

发布时间: 2012-01-14 20:02:35 作者: rapoo

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下要出错的。

读书人网 >VC/MFC

热点推荐