您的位置:首页 > 其它

关于CString, LPCTSTR, _TCHAR 转化成 char 的问题(简单解决办法)

2011-05-03 11:36 344 查看
 

关于CString, LPCTSTR, _TCHAR, char 互相转化的问题
 
首先,
CString 等于
LPCTSTR 等于 const _TCHAR *
 
以下这样写是没问题的:
 
CString cstr("sdf");
LPCTSTR lpctStr = cstr ;
const _TCHAR* tchar = lpctStr ;
 
 

CString 到 char 的转化,这个问题说得比较复杂。
 
VS2008 默认的创建项目里,这样写是会出错的:
 
CString cstr("sdf");
const char* c =cstr;
 
 
这是由于 VS2005和VS2008中增加了一些参数类型的安全性检查。
VS2008默认创建的工程是使用
Unicode 的。
当工程使用 Unicode时,CString 等于
wchar_t*, 而不是 char*; 所以要让上述语句编译得过,就不要设置使用
Unicode 字符。
 
设置方法如下:
 
项目>***工程属性(P)
 
配置属性
> 常规

 
右边:
把“字符集”选项
设置成 “使用多字节字符集 ”
 



 
按“确定”通过即可;
 
当然,这样做表示用了ANSI字符集,降低了程序的通用性。
 
参考资料:http://skpsun.blog.163.com/blog/static/2760055200810142505251/
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c