首页
社区
课程
招聘
[求助]VC内联汇编出现问题(急)
发表于: 2008-9-29 18:33 7741

[求助]VC内联汇编出现问题(急)

2008-9-29 18:33
7741
[LEFT]int index=0,length=0;
                    SendDlgItemMessageW(hwndDlg,IDC_COMBO_TITLE,CB_GETCURSEL,NULL,NULL);
                    __asm
                    {
                        mov index, eax                        
                    }[/LEFT]

[LEFT]                    if(index==2)
                    {
                        EnableWindow(GetDlgItem(hwndDlg,IDC_EDIT_DEFINE),TRUE);
                    }[/LEFT]

[LEFT]                    else
                    {
                        SendDlgItemMessageW(hwndDlg,IDC_COMBO_TITLE,CB_GETLBTEXTLEN,(WPARAM)index,NULL);[/LEFT]

[LEFT]                        __asm
                        {
                            mov length, eax;//// 这里出现问题::
                        }
                        TCHAR *buf = new TCHAR(length);
                        SendDlgItemMessage(hwndDlg,IDC_COMBO_TITLE,CB_GETLBTEXT,(WPARAM)index,(LPARAM)buf);
                    }

////////
error C2400: inline assembler syntax error in 'first operand'; found ','\
请高手指点.[/LEFT]

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 152
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
inline assembler syntax error in 'first operand'; found ','\
翻译一下这句话 是不是对你有点用
2008-9-29 18:37
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
内联汇编语法错误,在第一个操作数中:发现',;

不知道.mov index, eax 就可以.第二次使用就不行了.
我查了资料,说一条汇编语句中不能出现两个C++中的符号.但这两句显然不在一条汇编语句当中.
2008-9-29 20:02
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
找到原因了,写出来,与大家分享.length是汇编当中的关键字.我竟然不认识它了.平常我都写小写.资料上都是大写啊.
2008-9-29 20:16
0
雪    币: 367
活跃值: (35)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
5
index=(int)SendDlgItemMessageW(hwndDlg,IDC_COMBO_TITLE,CB_GETCURSEL,NULL,NULL);

这样即可,不必内联汇编
2008-10-2 10:01
0
游客
登录 | 注册 方可回帖
返回