error C2440: “初始化”: 无法从“wchar_t *”转换为“ATL::CStringT<BaseType,StringTraits>”

来源:互联网 发布:淘宝店名可以改几次 编辑:程序博客网 时间:2024/05/16 11:38
在使用MFC编译代码时出现下面的情况:
  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.    // ...下面省略
错误提示:
  1. error C2440: “初始化”: 无法从“wchar_t *”转换为“ATL::CStringT<BaseType,StringTraits>
  2. 1> with
  3. 1> [
  4. 1> BaseType=char,
  5. 1> StringTraits=StrTraitMFC_DLL<char>
  6. 1> ]
  7. 1> classATL::CStringT<BaseType,StringTraits>”的构造函数声明为“explicit
  8. 1> with
  9. 1> [
  10. 1> BaseType=char,
  11. 1> StringTraits=StrTraitMFC_DLL<char>
  12. 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. }

0 0