首页 > 代码库 > VC项目中,构造 CString 时,提示 explicit constructors (C2440) 的解决方法
VC项目中,构造 CString 时,提示 explicit constructors (C2440) 的解决方法
其实还是 ANSI 和 UNICODE 编码的问题。
可以使用宏 _T() 包裹字符串,使得 ANSI 和 UNICODE 兼容。如
CString strJustAnother (_T ("This is a TCHAR string a.k.a. LPCTSTR"));
或者,给那些不想改代码人的偷懒方法,屏蔽掉这个编译错误:
在 stdafx.h 文件中你一般会发现这个宏 _ATL_CSTRING_EXPLICIT_CONSTRUCTORS 的声明。
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将是显式的
把它屏蔽掉即可。
当然了,这样做的结果也是有副作用的。从此以后,对于工程中 CString 对象的隐式类型转换,编译器就不会给你任何警告了。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。