新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入開發(WinCE)的一些經驗

        嵌入開發(WinCE)的一些經驗

        作者: 時間:2011-02-27 來源:網絡 收藏

        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, /缺省的字符:"

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