转载来自: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); // ...下面 }