BtnST.h BtnST.cpp BCMenu.h BCMenu.cpp全部添加到工程下面,在vc6.0下编译能通过,但是在vs2005下编译通不过,大家是怎么解决这个问题呢?或者有没有人把这个CButtonST类修改下在vs2005下能用的?
BOOL BCMenu::ModifyODMenuW(wchar_t *lpstrText,wchar_t *OptionText,
                           int nIconNormal)
{
BCMenuData *mdata;

// Find the old BCMenuData structure:
CString junk=OptionText;
mdata=FindMenuOption(OptionText);
错误在CString junk=OptionText;错误信息为:
1>d:\test\svcplay1.7下午\svcplay\svcplay\bcmenu.cpp(1361) : 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>        ]

解决方案 »

  1.   

    int WideCharToMultiByte(
      UINT CodePage, 
      DWORD dwFlags, 
      LPCWSTR lpWideCharStr,
      int cchWideChar, 
      LPSTR lpMultiByteStr, 
      int cbMultiByte,
      LPCSTR lpDefaultChar,    
      LPBOOL lpUsedDefaultChar
    );用这个函数把OptionText转一下试试
      

  2.   

    这个是WideCharToMultiByte(OptionText)?;
      

  3.   

    多字符集下
    CString junk=OptionText;
    junk是ANSI,但是OptionText是wchar,不能直接赋值,需要转换,
    CString junk=(CW2A)OptionText;
      

  4.   


    恩谢谢哈  这个修改也可以
    CString junk(OptionText);