嵌入開發(WinCE)的一些經驗
WindowsCE下Unicode和Ansi字符間互相轉換的例子
縱所周知,WindowsCE下編程99%的問題都和Unicode有關.比如文件編輯,一般都保存為Ansi格式;無線通訊中控制Modem需要發送的AT指令,必須是Ansi格式;網絡通訊中,PC端一般都是Ansi的,為了和PC上協議兼容,在WindowsCE中必須把要發送的一個指令從Unicode 轉換成Ansi格式...等等.很多初學者對于這些問題總是感到很麻煩.其實WindowsCE中有標準的API實現了Unicode和Ansi字符間的互轉.下面就是網絡通訊中的程序片斷.
m_psocket是指向一個從CCeSocket派生的類,如果沒有連接的話其為NULL;
m_snd是要發送的CString,和一個EDIT相對應.
/發送函數片斷
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]; /發送緩沖區
ZeroMemory(buf,sizeof(buf)); /緩沖區清零
CString tmpstr(m_snd); /復制要發送的字符串
int multibytelen=WideCharToMultiByte( /計算從Unicode轉換到Ansi后需要的字節數
CP_ACP, /根據ANSI code page轉換
WC_COMPOSITECHECK | WC_DEFAULTCHAR, /轉換出錯用缺省字符代替
tmpstr.GetBuffer(m_snd.GetLength()), /要轉換的字符串地址
m_snd.GetLength(), /要轉換的個數
0, /轉換后字符串放置的地址
0, /最多轉換字符的個數,為0表示返回轉換Unicode后需要多少個字節
0, /缺省的字符:"
主站蜘蛛池模板:
成武县|
广南县|
阜宁县|
洛川县|
堆龙德庆县|
穆棱市|
皋兰县|
平果县|
武隆县|
泗洪县|
内丘县|
于都县|
眉山市|
廊坊市|
通渭县|
邻水|
逊克县|
明水县|
资源县|
宜城市|
应城市|
白朗县|
浏阳市|
应用必备|
施甸县|
永和县|
永川市|
大安市|
苍梧县|
三穗县|
皮山县|
汉川市|
上蔡县|
堆龙德庆县|
宿迁市|
曲阳县|
江城|
保山市|
祁阳县|
旬阳县|
定安县|