解决CButtonST按钮类在vs2005下报错问题

在将BtnST.h, BtnST.cpp, BCMenu.h, BCMenu.cpp添加到工程并尝试在VS2005中编译时遇到问题。由于junk是ANSI而OptionText是wchar,直接赋值会导致错误。解决方案是使用类型转换,如:CString junk=(CW2A)OptionText; 或 CString junk(OptionText);" 52016733,5677572,U-boot 2013.10版本移植到特定硬件平台的详细步骤,"['嵌入式开发', '硬件平台', 'U-boot移植']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BtnST.h BtnST.cpp BCMenu.h BCMenu.cpp全部添加到工程下面,在vc6.0下编译能通过,但是在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>        ]
如下修改就可以了:

BOOL BCMenu::ModifyODMenuW(wchar_t *lpstrText,wchar_t *OptionText, int nIconNormal) { BCMenuData *mdata; // Find the old BCMenuData structure: CString junk(OptionText);

原因:

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

或者CString junk(OptionText);这样修改也是可以的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值