您的位置:首页 > 其它

char*与LPCTSTR,LPTSTR的转换

2016-03-29 14:35 316 查看
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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: