乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      LPCWSTR和CString 轉(zhuǎn)換,在WideCharToMultiByte函數(shù)中應(yīng)用

       寂靜如河 2012-04-16

      LPCWSTR是Unicode字符串指針,初始化時(shí)串有多大,申請(qǐng)空間就有多大,以后存儲(chǔ)若超過(guò)則出現(xiàn)無(wú)法

      預(yù)料的結(jié)果,這是它與CString的不同之處。而CString是一個(gè)串類,它會(huì)自動(dòng)管理內(nèi)存空間。LPCWSTR初

      始化如下:

          LPCWSTR Name=L"TestlpCwstr";

          由于LPCWSTR必須指向Unicode的字符串,問(wèn)題的關(guān)鍵就變成了ANSI字符與Unicode字符之間的轉(zhuǎn)換

      了,而ATL中轉(zhuǎn)換宏正好可以實(shí)現(xiàn):

          //方法一

          CString str=_T("TestStr");

          USES_CONVERSION;

          LPWSTR pwStr=new wchar_t[str.GetLength()+1];

          wcscpy(pwStr,T2W((LPCTSTR)str));

          //方法二

          CString str=_T("TestStr");

          USES_CONVERSION;

          LPWCSTR pwcStr=A2CW((LPCSTR)str);

          MFC中CString和LPSTR可通用,其中A2CW表示(LPCSTR)->(LPCWSTR),USES_CONVERSION 表示

      用來(lái)定義一些中間變量,在使用ATL轉(zhuǎn)換宏之前必須定義該語(yǔ)句。

          此外,要將LPCWSTR轉(zhuǎn)換為CString,那就更容易,因?yàn)長(zhǎng)PCWSTR可以直接用來(lái)構(gòu)造CString,例如:

          LPCWSTR pcwStr=L"TestpwcStr";

          CString str(pcwStr);

          在<atlconv.h>頭文件中定義了ATL提供的所有轉(zhuǎn)換宏,如下:

          A2CW                                   (LPCSTR)->(LPCWSTR)

          A2W                                      (LPCSTR)->(LPWSTR)

          W2CA                                    (LPCWSTR)->(LPCSTR)

          W2A                                       (LPCWSTR)->(LPSTR)

      其中各字母的含義如下:

      2:為to的發(fā)音,表示“轉(zhuǎn)換為”的含義

      A:為ANSI字符串,即MBCS

      W和OLE:為寬字符串,即UNICODE

      T:為中間類型。如果定義了_UNICODE,則T表示W(wǎng);如果定義了_MBCS,則T表示A

      C:為const的縮寫

          利用這些宏,可以快速的進(jìn)行各種字符間的轉(zhuǎn)換。使用之前必須包含<atlconv.h>頭文件,并且聲明

      USES_CONVERSION。使用ATL轉(zhuǎn)換宏,由于不用釋放臨時(shí)空間,所以使用起來(lái)非常方便。但考慮到???/p>

      間的尺寸(VC++默認(rèn)為2M),使用時(shí)需注意以下幾點(diǎn):

      (1)只適用于進(jìn)行短字符串的轉(zhuǎn)換

      (2)不要試圖在一個(gè)次數(shù)比較多的循環(huán)體內(nèi)進(jìn)行轉(zhuǎn)換

      (3)不要試圖對(duì)字符型文件內(nèi)容進(jìn)行轉(zhuǎn)換,因?yàn)槲募叽缫话闱闆r下都比較大

      (4)對(duì)于2和3兩種情況,應(yīng)該使用MultiByteToWideChar和WideCharToMultiByte函數(shù)

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多