在使用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);
// ...下面
}