您的位置首页百科问答

关于串口通信中COleSafearray的问题

关于串口通信中COleSafearray的问题

#define DIM 1#define LEN 9void CTestDlg::OnTest() { BYTE i1vTest[LEN] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; SAFEARRAYBOUND sab[DIM]; sab[0].cElements = LEN; sab[0].lLbound = 0; SAFEARRAY* psa = NULL; psa = SafeArrayCreate(VT_UI1, DIM, sab); for(long i = 0; i < LEN; i++){ SafeArrayPutElement(psa, &i, &(i1vTest[i])); } VARIANT vt; vt.vt = VT_ARRAY|VT_UI1; vt.parray = psa; COleSafeArray sa; sa = vt; DWORD dwLen = sa.GetOneDimSize(); CString str; str.Format("%d", dwLen); MessageBox(str);}---------------------------------------------------------------------------------我写了这样的一个测试程序,感觉问题应该处在你的“第一步”,也就是说中让好,你未必完全正确的从串口缓冲区获得了有效的滑陆VARIANT数卖铅据。