下段代碼建一個空專案的時候能夠接收資料并顯示,同樣代碼在一個已有專案中就不能顯示資料了。求大神看看會是什么原因呢?
void
{
CString temp;
static unsigned int cnt=0;
VARIANT variant_inp;
COleSafeArray safearray_inp;
long len,k;
unsigned intdata[1024]={0};
byte rxdata[1024];//設定BYTE陣列
CString strtemp;
m_EditMeasure1.Empty();
if (m_mscomm.get_CommEvent()==2)//值為2表示接識訓沖區內有字符
{
cnt++;
variant_inp= m_mscomm.get_Input();//讀取緩沖區
safearray_inp= variant_inp;//變數轉換
len= safearray_inp.GetOneDimSize();//得到有效的資料長度
for (k=0;k<len;k++)
{
safearray_inp.GetElement(&k,rxdata+k);
}
char c_char;
for (k=0;k<len;k++)
{
strtemp.Format(_T("%c"),*(rxdata+k));
temp +=strtemp;
}
if (temp.GetLength() == 3)
{
wchar_t* ctemp = (wchar_t*)temp.GetBuffer(0);
if (ctemp[0] == 0x55)
{
UpdateData(TRUE);
m_EditMeasure1.Format(_T("%lf"),(double)((double)(ctemp[1]<<8) + (double)ctemp[2])*5/16384);
//m_EditMeasure1.Format(_T("%02d %02d"),ctemp[1],ctemp[2]);// ((ctemp[1]<<8) + ctemp[2]));
UpdateData(FALSE);
}
else if (ctemp[0] == 0xAA)
{
UpdateData(TRUE);
m_EditMeasure2.Format(_T("%lf"),((double)(ctemp[1]<<8) + (double)ctemp[2])*5/16384);
UpdateData(FALSE);
//m_EditMeasure2.Format(_T("%02d %02d"),ctemp[1], ctemp[2]);//((ctemp[1]<<8) + ctemp[2]));
}
}
}
UpdateData(FALSE);
}
uj5u.com熱心網友回復:
我這個程式主要實作把串口發送過來的0x55****或者0xAA****三個長度的資料轉為十進制輸出編輯框顯示。uj5u.com熱心網友回復:
剛剛測驗發現工程屬性字符集在Unicode情況下,代碼可用。未設定就不行了。該如何修改代碼呢??轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/150866.html
標籤:基礎類
上一篇:資料庫新建庫相關問題!
