【轉】char*與LPCTSTR,LPTSTR的轉換
(2008-12-02 21:31:25)
標籤:
雜談 |
2005默認使用Unicode字符集,在創建項目時可以指定爲多字節字符集,也可以創建之後再修改。
如果只是要把LPTSTR指向的Unicode字符串轉換爲LPSTR字符串,可以用WideCharToMultiByte函數。MSDN中有參數說明和例子。
我一般用char * 和CString
VC裏一般都提供CString的接口
否則也有LPCTSTR的。
如果是LPCTSTR可以直接用CString轉換
CString str;
(LPCTSTR)str就是LPCTSTR的了。
char * 也可以這麼轉換成LPCTSTR。
char * 不能直接轉換成CString,CString 也不能直接轉換成char *
但是有了LPCTSTR就可以了。哈哈
char * p
CString str;
p = (char*)(LPCTSTR)str;
str = (CString)(LPCTSTR)p;
所以,對我來說,LPCTSTR是用來轉換的過度工具,它能幹什麼?我不管。反正我這麼用就足夠了。
在代碼中未定義 UNICODE 的情況下
LPTSTR 等價於 char *
LPCSTR 等價於 const char *
所以直接使用就是了。
LPTSTR 等價於 char *
LPCSTR 等價於 const char *
所以直接使用就是了。
char temp[6] = "abcd";
LPTSTR lptstr = (LPTSTR)temp;
LPCTSTR lpctstr = (LPCTSTR)temp;
LPTSTR lptstr = (LPTSTR)temp;
LPCTSTR lpctstr = (LPCTSTR)temp;