+ -
当前位置:首页 → 问答吧 → 关于线程问题

关于线程问题

时间:2011-12-26

来源:互联网

在类外定义了一个结构体
typedef struct tagTHREADPARMS
{
volatile bool bKill;
HWND hWnd;
}THREADPARMS;

void CWeightClientView::OnInitialUpdate()
{

CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();



AfxMessageBox("线程启动");
THREADPARMS *ptp=new THREADPARMS;
ptp->hWnd=m_hWnd;
ptp->bKill=FALSE;
hCardThread=AfxBeginThread(CardThreadFuc,ptp);

}
在Initial中new
void CWeightClientView::OnManual()
{
ptp->bKill=TRUE;
}
在菜单响应函数中调用ptp->bKill=TRUE为什么会报错,调试好像找不到ptp指针地址啊

作者: yudawei1314   发布时间: 2011-12-26

THREADPARMS *ptp=new THREADPARMS;

把 ptp 定义在你的类中。
然后,
ptp=new THREADPARMS;

作者: Saleayas   发布时间: 2011-12-26

THREADPARMS *ptp=new THREADPARMS;
这个你是定义在void CWeightClientView::OnInitialUpdate()
函数中,是一个局部变量,在别的函数中当然不认识ptp了。

作者: wltg2001   发布时间: 2011-12-26

囧,把你的ptp定义为类的成员指针变量即可

作者: VisualEleven   发布时间: 2011-12-26

把ptp定义成成员变量或者全局变量

作者: agoago_2009   发布时间: 2011-12-26