转载来自:http://blog.csdn.net/u010921682/article/details/53160506
在使用MFC编译代码时出现下面的情况:
BOOL BCMenu::ModifyODMenuW(wchar_t *lpstrText,wchar_t *OptionText,
int nIconNormal)
{
BCMenuData *mdata;
// Find the old BCMenuData structure:
CString junk=OptionText;
// ...下面省略
}
错误提示:
error C2440: “初始化”: 无法从“wchar_t *”转换为“ATL::CStringT<BaseType,StringTraits>”
1> with
1> [
1> BaseType=char,
1> StringTraits=StrTraitMFC_DLL<char>
1> ]
1> class“ATL::CStringT<BaseType,StringTraits>”的构造函数声明为“explicit”
1> with
1> [
1> BaseType=char,
1> StringTraits=StrTraitMFC_DLL<char>
1> ]
正确方式(语法检查和编译检查比较严格):
-
BOOL BCMenu::ModifyODMenuW(wchar_t *lpstrText,wchar_t *OptionText,
-
int nIconNormal)
-
{
-
BCMenuData *mdata;
-
-
// Find the old BCMenuData structure:
-
CString junk(OptionText);
-
// ...下面
-
}