嵌入開發(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, /缺省的字符:"
主站蜘蛛池模板:
依兰县|
涡阳县|
伊通|
盐边县|
建始县|
昆明市|
黑水县|
日喀则市|
岳池县|
商城县|
晋中市|
申扎县|
莲花县|
读书|
盱眙县|
马公市|
凤阳县|
武宣县|
通渭县|
垣曲县|
商河县|
黔江区|
周至县|
千阳县|
长白|
天津市|
兰坪|
晋中市|
乡宁县|
杂多县|
罗城|
遵义市|
栖霞市|
武乡县|
吉隆县|
舞钢市|
湾仔区|
安岳县|
沈阳市|
旺苍县|
定襄县|