error C2440: ‘initializing’ : cannot convert from ‘wchar_t *’ to ‘ATL::CStringT

在使用MFC编译代码时出现下面的情况:

【全新正版】C语言从入门到精通c语言程序设计c++电脑编程入门零基础自学轻松学计算机c语言入门软件程序员开发教程教材书籍
全新版【赠:电子书实战案例+VC6.0安装包】 | 月销量2058件
优惠价28.8元
原价¥98

淘口令:

¥dYHrXPn19v2¥
 

error C2440: ‘initializing’ : cannot convert from ‘wchar_t *’ to ‘ATL::CStringT<BaseType,StringTrait

相关的代码如下:

  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>          class“ATL::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. }
© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞0
分享
评论 抢沙发