日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀] WindowsCE下Unicode和Ansi字符間互相轉換的例子縱所周知,WindowsCE下編程99%的問題都和Unicode有關.比如文件編輯,一般都保存為Ansi格式;無線通訊中控制Modem需要發(fā)送的AT指

 WindowsCE下Unicode和Ansi字符間互相轉換的例子

縱所周知,WindowsCE下編程99%的問題都和Unicode有關.比如文件編輯,一般都保存為Ansi格式;無線通訊中控制Modem需要發(fā)送的AT指令,必須是Ansi格式;網絡通訊中,PC端一般都是Ansi的,為了和PC上協議兼容,在WindowsCE中必須把要發(fā)送的一個指令從Unicode 轉換成Ansi格式...等等.很多初學者對于這些問題總是感到很麻煩.其實WindowsCE中有標準的API實現了Unicode和Ansi字符間的互轉.下面就是網絡通訊中的程序片斷.

m_psocket是指向一個從CCeSocket派生的類,如果沒有連接的話其為NULL;

m_snd是要發(fā)送的CString,和一個EDIT相對應.

//發(fā)送函數片斷

void CClient1Dlg::OnButtonSend()

{

// TODO: Add your control notification handler code here

if (!m_psocket) //無Socket連接,退出

{

MessageBox(TEXT("無連接!"),TEXT("信息"));

return;

}

UpdateData(TRUE); //保存輸入的字符串到m_snd

unsigned char buf[129]; //發(fā)送緩沖區(qū)

ZeroMemory(buf,sizeof(buf)); //緩沖區(qū)清零

CString tmpstr(m_snd); //復制要發(fā)送的字符串

int multibytelen=WideCharToMultiByte( //計算從Unicode轉換到Ansi后需要的字節(jié)數

CP_ACP, //根據ANSI code page轉換

WC_COMPOSITECHECK | WC_DEFAULTCHAR, //轉換出錯用缺省字符代替

tmpstr.GetBuffer(m_snd.GetLength()), //要轉換的字符串地址

m_snd.GetLength(), //要轉換的個數

//轉換后字符串放置的地址

//最多轉換字符的個數,為0表示返回轉換Unicode后需要多少個字節(jié)

//缺省的字符:"