在使用MFC编译代码时出现下面的情况:
null
error C2440: ‘initializing’ : cannot convert from ‘wchar_t *’ to ‘ATL::CStringT<BaseType,StringTrait
相关的代码如下:
- 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);
// ...下面
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容