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

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

    • 分享

      CString與BSTR之間的轉(zhuǎn)換

       寂靜如河 2012-04-16

      # CString------>BSTR

      CString sName = _T("Hello");

      BSTR bsName = sName.AllocSysString();

      SysFreeString(bsName);

      # CString------>CComBSTR

      CComBSTR cbsName(sName);              //編譯環(huán)境為UNICODE調(diào)用構(gòu)造函數(shù)CComBSTR(LPCOLESTR pSrc)

                                                                 //編譯環(huán)境為MBCS     調(diào)用構(gòu)造函數(shù)CComBSTR(LPCSTR pSrc)

      CComBSTR cbsName1 = sName;          //與上面完全等價(jià)

      變量聲明中的賦值操作會調(diào)用構(gòu)造函數(shù),而聲明之外的賦值操作則會調(diào)用operator=(),

      例如UNICODE環(huán)境下

      cbsName1 = sName;                            //調(diào)用CComBSTR& operator=(LPCOLESTR pSrc)

      # BSTR------>CString

      1.    使用宏COLE2T

      BSTR bStr = SysAllocStringLen(OLESTR("XXX\0YYY"), 7);

      CString s = COLE2T(bStr);             //BSTR轉(zhuǎn)換為LPTSTR,不要使用OLE2T

      或者

      CString s = COLE2CT(bStr);           //BSTR轉(zhuǎn)換為LPCTSTR,不要使用OLE2CT

      SysFreeString(bStr);

      2. 使用中間類_bstr_t

      _bstr_t temp(bStr, FALSE);

      s = temp;

      由于BSTR的實(shí)際長度是由字符串之前的4個(gè)字節(jié)指定的,所以它可以包含NULL字符,轉(zhuǎn)換為CString之后最后的那四個(gè)字符"\0YYY"丟失了。

      # CComBSTR------>CString

          因?yàn)?/span>CComBSTR重載了operator BSTR所以# BSTR------>CString中的方法也完全適用于CComBSTR

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多