【轉】char*與LPCTSTR,LPTSTR的轉換

【轉】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 *

所以直接使用就是了。
char temp[6] = "abcd";
LPTSTR lptstr = (LPTSTR)temp;
LPCTSTR lpctstr = (LPCTSTR)temp;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章