error C2440: “初始化”: 无法从“wchar_t *”转换为“ATL::CStringT”

转载来自: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”
1>          with
1>          [
1>              BaseType=char,
1>              StringTraits=StrTraitMFC_DLL
1>          ]
1>          class“ATL::CStringT”的构造函数声明为“explicit”
1>          with
1>          [
1>              BaseType=char,
1>              StringTraits=StrTraitMFC_DLL
1>          ]
正确方式(语法检查和编译检查比较严格):

  1. BOOL BCMenu::ModifyODMenuW(wchar_t *lpstrText,wchar_t *OptionText,
  2. int nIconNormal)
  3. {
  4. BCMenuData *mdata;
  5. // Find the old BCMenuData structure:
  6. CString junk(OptionText);
  7. // ...下面
  8. }



你可能感兴趣的:(MFC,C++)