這是控制元件回應的代碼,但是最后輸出結果全都是0,不知道哪里出現錯誤!
if (m_mscom.get_CommEvent() == 2)
{
CString str;
char chrBuffer[1024] ;
long k;
unsigned short usLength = 0, usCnt = 0;
VARIANT InputData = m_mscom.get_Input();
COleSafeArray fs;
fs = InputData;
for (k = 0; k < fs.GetOneDimSize(); k++)
{
fs.GetElement(&k, chrBuffer + k);
usLength = fs.GetOneDimSize();
memcpy(&chrBuffer, &fs, usLength);//可能是這里出錯,但是找不到解決方法
switch (chrBuffer[1])
{
case 0x50:
memcpy(&stcTime, &chrBuffer[2], 8);
break;
case 0x51:
memcpy(&stcAcc, &chrBuffer[2], 8);
break;
}
}
CString str_T;
str_T.Format(_T("Time:20%d-%d-%d %d:%d:%.3f\r\n"), (short)stcTime.ucYear, (short)stcTime.ucMonth,
(short)stcTime.ucDay, (short)stcTime.ucHour, (short)stcTime.ucMinute, (float)stcTime.ucSecond + (float)stcTime.usMiliSecond / 1000);
CString str_A;
str_A.Format(_T("Acc:%.3f %.3f %.3f\r\n"), (float)stcAcc.a[0] / 32768 * 16, (float)stcAcc.a[1] / 32768 * 16, (float)stcAcc.a[2] / 32768 * 16);
m_EditRev += str_T;
m_EditRev += str_A;
UpdateData(false); //將資料在螢屏中對應控制元件中顯示出來。
}
}
uj5u.com熱心網友回復:
memcpy(&chrBuffer, &fs, usLength);// chrBuffer是個陣列,去掉前面的&
// fs是個結構體吧?取fs.data[]之類的
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/151411.html
標籤:其他硬件開發
