我做了个基于Dialog的MFC程序,然后在对话框类中定义了一静态线程函数,现在想通过该函数访问对话框类成员变量,发现访问违规,我是将this指针,也就是该对话框类对象指针传进去的。
class CADlg:public CWnd
{
...
public:
static DWORD WINAPI ThreadProc(LPVOID lpParam);
}DWORD CADlg::ThreadProc(LPVOID lpParam)
{
CADlg* pDlg = (CADlg*)lpParam;
pDlg->UpdateData(TRUE); // 这里崩溃,why?
pDlg->MessageBox(""); // 如果不执行前面一句,这里就死机,why?
return 0;
}
class CADlg:public CWnd
{
...
public:
static DWORD WINAPI ThreadProc(LPVOID lpParam);
}DWORD CADlg::ThreadProc(LPVOID lpParam)
{
CADlg* pDlg = (CADlg*)lpParam;
pDlg->UpdateData(TRUE); // 这里崩溃,why?
pDlg->MessageBox(""); // 如果不执行前面一句,这里就死机,why?
return 0;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货