?
cstring------>bstr
cstring sname = _t("hello");
bstr bsname = sname.allocsysstring();
sysfreestring(bsname);
?cstring------>ccombstr
ccombstr cbsname(sname); //unicode
:呼叫建構函式
ccombstr(lpcolestr psrc)
//mbcs
:
呼叫建構函式
ccombstr(lpcstr psrc)
ccombstr cbsname1 = sname; //
行為與上行一樣
在變數宣告中的賦值操作只會呼叫建構函式
,而其他賦值操作則只呼叫
operator=()方法,
例如unicode
環境下:
cbsname1 = sname; //
呼叫ccombstr& operator=(lpcolestr psrc)
? bstr------>cstring 1.
使用巨集cole2t
bstr bstr = sysallocstringlen(olestr(
「***\0yyy
」), 7);
cstring s = cole2t(bstr); //
將bstr
轉換為lptstr
,不可使用
ole2t
或者cstring s = cole2ct(bstr); //
將bstr
轉換為lpctstr
,不可使用
ole2ct
sysfreestring(bstr);
2.使用中間類_bstr_t
_bstr_t t(bstr, false);
s = t;
由於bstr的實際長度是由字串之前的4個位元組指定的,所以它可以包含null字元,轉換為cstring之後最後的那四個字元"\0yyy"丟失了。
? ccombstr------>cstring 因為
ccombstr
過載了operator bstr
,所以上面對
bstr
使用的方法也完全適用於
ccombstr
。
BSTR與CString之前的轉換
一.bstr是進行com程式設計時試用的字串型別,對bstr型別變數進行複製有兩種方式 1.cstring提供的轉換函式,cstring allocsysstring來進行轉換 cstring str hockey is best bstr bstr str.allocsysstring 2.利用強...
BSTR與CString之前的轉換
一.bstr是進行com程式設計時試用的字串型別,對bstr型別變數進行複製有兩種方式 1.cstring提供的轉換函式,cstring allocsysstring來進行轉換 cstring str hockey is best bstr bstr str.allocsysstring 2.利用強...
CString 型轉化成 BSTR 型
當我們使用 activex 控制項程式設計時,經常需要用到將某個值表示成 bstr 型別。我們先來看看variant typedef tagvariant variant struct tagvariant variant name 4 variant name 3 variant name 2 d...