|
{
// TODO: 在此添加控件通知处理程序代码
int nEngineType;
int OpenMode;
unsigned char pszBarcode[128];
int nScanTime;
CString strpszBuffer;
HANDLE hCom = SHTP_OpenPort(4,B9600);
Close();
// SSI_BarcodeOpen();
wchar_t lpWideCharStr;
int nCount = SHTP_GetByteCount(hCom);
if(nCount > 0)
{
unsigned char pszBuffer[128];
SHTP_ReadPortBytes(hCom,nCount,pszBuffer);
DWORD wcharLen;
wcharLen = MultiByteToWideChar(CP_ACP,0,(char *)pszBuffer,strlen((char *)pszBuffer)+1,NULL,0);
//MByteToWChar((LPCSTR)pszBuffer,lpWideCharStr,dwSize);
MultiByteToWideChar(CP_ACP,0,(LPCSTR)pszBuffer,-1,(LPWSTR)lpWideCharStr,wcharLen);//char to wchar!
//UpdateData();
//strpszBuffer.Format(TEXT("%d"), *((int*)lpWideCharStr));
m_listBox.GetText(2,(LPTSTR)lpWideCharStr);
m_listBox.AddString((LPCTSTR)lpWideCharStr);
//AfxMessageBox((LPCTSTR)lpWideCharStr);
//AfxMessageBox(pszBuffer);
// UpdateData(FALSE);//
}
// Close();
// Sleep(2000);
SSI_BarcodeOpen();
//m_listBox.AddString(L"test");
// UpdateData(FALSE);
}
单步的时候到这步m_listBox.AddString((LPCTSTR)lpWideCharStr);
可以看到里面的数值
却显示些乱七八糟的东西
是不是AddString只能显示些特定的数据格式
lpWideCharStr是款字节的格式
我单步执行的时候执行到
m_listBox.AddString((LPCTSTR)lpWideCharStr);
有时候可以在BOX中看到正确的数值
看到正确数值的时候再单步就单步不下去了
我如果把这个应用程序直接同步到WINCE系统下去执行
却不管数据有没有从串口上来都只显示量个框框
我的这个串口程序是PC上移植过来的
是不是不支持I/O重叠原因造成的
|
|