关于CString, LPCTSTR, _TCHAR, char 互相转化的问题
首先, CString 等于 LPCTSTR 等于 const _TCHAR *
以下这样写是没问题的:
而 CString 到 char 的转化,这个问题说得比较复杂。
VS2008 默认的创建项目里,这样写是会出错的:
这是由于 VS2005和VS2008中增加了一些参数类型的安全性检查。 VS2008默认创建的工程是使用 Unicode 的。 当工程使用 Unicode时,CString 等于 wchar_t*, 而不是 char*; 所以要让上述语句编译得过,就不要设置使用 Unicode 字符。
设置方法如下:
项目>***工程属性(P)
配置属性 > 常规
右边: 把“字符集”选项 设置成 “使用多字节字符集 ”
按“确定”通过即可;
当然,这样做表示用了ANSI字符集,降低了程序的通用性。
参考资料:http://skpsun.blog.163.com/blog/static/2760055200810142505251/