struct stPara //定义结构体,作为线程创建时的参数;
{
BOOL Collect[9]; //采集项目
int CollectCirle[9]; //设置采集周期
CSuperSerialPort* pSerial;
};void CDLT645Dlg::OnStart()
{
// TODO: Add your control notification handler code here
MessageBox("开始采集");
stPara para;
for(int i=0;i<9;i++)
{
para.CollectCirle[i]=m_paraSet.m_collectCircle[i];
para.Collect[i]=m_paraSet.m_collect[i];
}
para.pSerial=m_pSerial;TRACE(_T("Collectcirle=%d,Collect=%d\n"),para.CollectCirle[0],para.Collect[0]); //调试时,para结构体数值正确 HANDLE m_hCollect;
m_hCollect=CreateThread(NULL,0,ColTimeThread,¶,0,NULL);//¶的地址与线程中pVoid地址相同
CloseHandle(m_hCollect);
}
ULONG WINAPI ColTimeThread(LPVOID pVoid)//¶的地址与线程中pVoid地址相同
{ //指针传递正确;
stPara para;
memcpy(¶,(stPara *)pVoid,sizeof(stPara));
TRACE(_T(para.Collect[0]=%d,para.CollectCirle[0]=%d),para.Collect [0],para.CollectCirle[0]) //调试时值却是随机数
}救命啊,请指教
{
BOOL Collect[9]; //采集项目
int CollectCirle[9]; //设置采集周期
CSuperSerialPort* pSerial;
};void CDLT645Dlg::OnStart()
{
// TODO: Add your control notification handler code here
MessageBox("开始采集");
stPara para;
for(int i=0;i<9;i++)
{
para.CollectCirle[i]=m_paraSet.m_collectCircle[i];
para.Collect[i]=m_paraSet.m_collect[i];
}
para.pSerial=m_pSerial;TRACE(_T("Collectcirle=%d,Collect=%d\n"),para.CollectCirle[0],para.Collect[0]); //调试时,para结构体数值正确 HANDLE m_hCollect;
m_hCollect=CreateThread(NULL,0,ColTimeThread,¶,0,NULL);//¶的地址与线程中pVoid地址相同
CloseHandle(m_hCollect);
}
ULONG WINAPI ColTimeThread(LPVOID pVoid)//¶的地址与线程中pVoid地址相同
{ //指针传递正确;
stPara para;
memcpy(¶,(stPara *)pVoid,sizeof(stPara));
TRACE(_T(para.Collect[0]=%d,para.CollectCirle[0]=%d),para.Collect [0],para.CollectCirle[0]) //调试时值却是随机数
}救命啊,请指教
void CDLT645Dlg::OnStart()
{
// TODO: Add your control notification handler code here
MessageBox("开始采集");
stPara para;