VC中的字符串

字符串

CHAR

這個類型是最簡單的字符串了,就是一個字節表示一個字符的那種,不過你可別小看它,先弄懂它別的就好說了。接下來我們看看它的兩個”變種”

LPSTR

在VC裏頭這個字符串實際上就是CHAR*,注意如果你把它作爲參數傳給某個函數的話,就表示它所代表的字符串可以被函數改變。這一點很重要,也就是說 LPSTR可以作爲傳出參數[in]使用。

LPCSTR

在VC裏頭這個字符串表示const CHAR*,也就是說它是個常量,如果作爲參數傳遞個函數,它所表示的字符串的值是不能變的,也就是說它只能作爲傳 入[out]參數使用。
請認真比較上面的一些區別,在下面的字符串中,幾乎都是這樣劃分的。

WCHAR

這個比較容易理解,就是使用兩個字節表示一個字符的那種,如果咱們把項目定義爲UNICODE的話,所有字符串都是這個了。同樣的它也有兩個變形LPWSTR和LPCWSTR。

TCHAR

這個字符串最經常使用。爲什麼呢?因爲VC爲了大家的方便,比如你想把項目從ANSI(單字節)改爲UNICODE(雙字節),如果你用的是TCHAR那 麼就不用着急了。VC會自動爲你轉換。
說到底TCHAR就是你在沒有定義項目是UNICODE之前它就是了CHAR,否則它就是WCHAR。就這麼簡單。

類型轉換

VC中常用的字符串有四種:CHAR, TCHAR, WCHAR, BSTR那麼它們之間如何轉換呢?
本來這個問題很麻煩,幸好VC爲我們提供了現成的函數。先來看看從CHAR到TCHAR
就是這個函數了
CA2T(CHAR*, TCHAR*)
大家來看這裏A代表CHAR類型的,T代表TCHAR類型的。
如果要從CHAR轉換到LPCTSTR那麼就是
CA2CT(CHAR*, LPCTSTR)
你一定已經看出規律了A和T,不用解釋了。這裏的C代表const記得上次我們說過LPCTSTR就是const TCHAR*哦。現在你一定都明白了。
按照這個規律,我們只要知道四種字符串的”代號”就可以在它們之間自由的做轉換了。下面就是他們的代號。
CHAR — A
TCHAR — T
BSTR — OLE
WCHAR — W
const — C

轉載:http://blog.csdn.net/tonykk2008/article/details/7954438

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章