首页
社区
课程
招聘
未解决 [求助]内嵌汇编提示 “memset”: 第一操作数中的非法符号
发表于: 2021-3-1 16:25 2880

未解决 [求助]内嵌汇编提示 “memset”: 第一操作数中的非法符号

2021-3-1 16:25
2880
1
2
3
4
5
6
7
8
9
10
_asm
    {
    ...
        push 0x68
        push 0x0
        push ebx
        call memset
        add esp, 0xc
    ...
    }

上面的代码,在 vs2018 中,debug 模式下没有问题。release 模式下出错:
error C2420: “memcpy”: 第一操作数 中的非法符号


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2

把memset方法的地址在汇编代码模块外获取,存到局部变量,然后再调用就没问题了:

DWORD dwMemSet = (DWORD)memset;
    _asm
        {
        ...
            push 0x68
            push 0x0
            push ebx
            mov eax,dword ptr dwMemSet
            call eax
            add esp, 0xc
        ...
        }

最后于 2021-3-1 16:27 被kanzryxue编辑 ,原因:
2021-3-1 16:26
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3


最后于 2021-3-1 16:28 被kanzryxue编辑 ,原因:
2021-3-1 16:27
0
游客
登录 | 注册 方可回帖
返回
//