1
、cstring to
char
*//經過型別強制轉換,可以將cstring型別轉換成char*,例如:
cstring cstr ="
hello,world!";
char
*zstr =(
char
*)(lpctstr)cstr;
//cstring與int轉換
intstringtoint(cstring source)
2、char
*to cstring
//char*型別可以直接給cstring,完成自動轉換,例如:
char
*zstr ="
hello,world!";
cstring cstr
=zstr;
3、cstring to lpcstr
//將cstring轉換成lpcstr,需要獲得cstring的長度cstring cstr = _t("hello,world!");
intnlen
=cstr.getlength();
lpcstr lpszbuf
=cstr.getbuffer(nlen);
4、cstring to lpstr
//這個和第3個技巧是一樣的,例如:
cstring cstr
=_t(
"hello,world!");
intnlen
=str.getlength();
lpstr lpszbuf
=str.getbuffer(nlen);
在vc中關於型別的轉換比較麻煩,新手開發vc程式遇到的第乙個問題往往和這個有關。
近日從網上以及自己的經驗,搜尋了一些相關資料。
pcxstr,如果不是在 unicode 下,pcxstr與const char*是相同的;
cstring作為指向字元的非常數指標來直接訪問時,請使用 getbuffer 和 releasebuffer 成員函式。
使用 allocsysstring 和 setsysstring 成員函式來分配和設定用於自動化(以前稱為 ole 自動化)中的bstr物件。
乙個cstring物件可儲存多達int_max(2,147,483,647) 個字元。tchar資料型別用來獲取或設定cstring物件中的單個字元。與字元陣列不同,cstring類具有內建記憶體分配能力。
從 mfc 4.0 版本開始,當複製 cstring 物件時,mfc 增加引用計數而不是複製資料。這使得按值傳遞引數和按值返回cstring物件更為高效。這些操作將呼叫複製建構函式,有時甚至不只一次。增加引用計數會減少這些普通操作的系統開銷,並且使人更願意使用cstring。
隨著每個副本的銷毀,原物件中的引用計數也會相應減少。直到原cstring物件的引用計數減少到零時才會銷毀該物件。
可使用cstring成員函式 lockbuffer 和 unlockbuffer 來禁用或啟用引用計數。
vc中字元編碼轉換
一直用php開發,在php開發用字元編碼轉換很簡單只要用iconv函式就可以實現,最近的專案要把vc的資料提交給php處理,在返回給vc結果,問題來了,vc專案的編碼是gb2312,而php程式是utf 8編碼,導致資料亂碼。看到亂碼第一感覺就是編碼問題了。vc中有像iconv這樣的函式嗎?查msd...
VC中的字串轉換巨集
atl7.0引入了幾個新的轉換類和巨集,現有的巨集提供了顯著的改善。新的字串轉換類和巨集的名稱,採取的形式如下 c sourcetype 2 c destinationtype ex 其中,c 表示目的型別是const型別的,ex 表示指定了儲存字串資料的固定靜態快取區的大小,如果字串轉換的結果超過...
VC中的字串轉換巨集
atl7.0引入了幾個新的轉換類和巨集,現有的巨集提供了顯著的改善。新的字串轉換類和巨集的名稱,採取的形式如下 c sourcetype 2 c destinationtype ex 其中,c 表示目的型別是const型別的,ex 表示指定了儲存字串資料的固定靜態快取區的大小,如果字串轉換的結果超過...