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

来源:互联网 发布:apache tomcat官网下载 编辑:程序博客网 时间:2024/05/29 16:16

 

关于CString, LPCTSTR, _TCHAR, char 互相转化的问题

 

首先,CString 等于LPCTSTR 等于 const _TCHAR *

 

以下这样写是没问题的:

 

 

 

CString char 的转化,这个问题说得比较复杂。

 

VS2008 默认的创建项目里,这样写是会出错的:

 

 

 

这是由于 VS2005VS2008中增加了一些参数类型的安全性检查。VS2008默认创建的工程是使用Unicode 的。当工程使用 Unicode时,CString 等于wchar_t*, 而不是 char*; 所以要让上述语句编译得过,就不要设置使用Unicode 字符。

 

设置方法如下:

 

项目>***工程属性(P)

 

配置属性> 常规

 

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

 

 

按“确定”通过即可;

 

当然,这样做表示用了ANSI字符集,降低了程序的通用性。

 

参考资料:http://skpsun.blog.163.com/blog/static/2760055200810142505251/