如何在控制函数UINT ThreadControl(LPVIOD pParam)
中调用CMSComm的对象和其它类的对象。
我写了一个如下,
UINT CGyroView::MyThreadProc(LPVOID pParam)
{
CMSComm *pMy=(CMSComm*)pParam;
m_wls.Empty();
if(!pMy->GetPortOpen()) //´ò¿ª´®¿Úm_Com.
pMy->SetPortOpen(1);// m_Com.
CByteArray array;
array.RemoveAll();
array.SetSize(1);
array.SetAt(0, 'c');
pMy->SetOutput(COleVariant(array));//m_Com.
return 0;
//UpdateData(TRUE);
UpdateData(FALSE);
}
有四种错误,第一种是wls.empty()没有类的支持。(其实它是一个CString对象)。
第二种是CMSComm对象m_Com不能调用。
第三种是UpdateData()不能在此函数中调用
最后一种是联接不成功
请各位高手解答。
中调用CMSComm的对象和其它类的对象。
我写了一个如下,
UINT CGyroView::MyThreadProc(LPVOID pParam)
{
CMSComm *pMy=(CMSComm*)pParam;
m_wls.Empty();
if(!pMy->GetPortOpen()) //´ò¿ª´®¿Úm_Com.
pMy->SetPortOpen(1);// m_Com.
CByteArray array;
array.RemoveAll();
array.SetSize(1);
array.SetAt(0, 'c');
pMy->SetOutput(COleVariant(array));//m_Com.
return 0;
//UpdateData(TRUE);
UpdateData(FALSE);
}
有四种错误,第一种是wls.empty()没有类的支持。(其实它是一个CString对象)。
第二种是CMSComm对象m_Com不能调用。
第三种是UpdateData()不能在此函数中调用
最后一种是联接不成功
请各位高手解答。
UINT CGyroView::MyThreadProc(LPVOID pParam)
{
CGyroView *pView=(CGyroView*)pParam;
return pView ->Test();
}
UINT CGyroView::Test()
{
m_wls.Empty();
if(!m_Com.GetPortOpen())
m_Com.SetPortOpen(1);// m_Com.
CByteArray array;
array.RemoveAll();
array.SetSize(1);
array.SetAt(0, 'c');
m_Com.SetOutput(COleVariant(array));//m_Com.
UpdateData(FALSE); //这里有线程危险,最好使用PostMessage
return 0;
//UpdateData(TRUE);
}