描述:
以下代码:
void CTestDlg::OnBsave()
{
MessageBox("kkk");
}
DWORD WINAPI Save1Proc(LPVOID lpParam)
{//hMainWnd_1 为全局变量,在对话框初始话中有赋值,WM_PROCEND 为自定义函数.
//ON_MESSAGE(WM_PROCEND,OnBsave)
PostMessage(hMainWnd_1,WM_PROCEND,NULL,NULL);
return true;
}
void CTestDlg::OnButton()
{
// TODO: Add your control notification handler code here
DWORD ThreadID;
CreateThread(NULL,NULL,Save1Proc,NULL,NULL,&ThreadID);
}
以上代码在debug模式下没错,但在release下运行第二次都出错(程序错误,某地址不可读)!!屏蔽掉PostMessage则没运行没问题.
麻烦各位看看此问题如何解决.
解决方案1:
ON_MESSAGE(WM_PROCEND,OnBsave)
自定消息的响应方法OnBsave需要有两个参数,分别为WPARAM,LPARAM
PostMessage()前先检查hMainWnd_1句柄是否非法.
解决方案3: void CTestDlg::OnBsave()
???
LRESULT OnBsave(WPARAM,LPARAM);