首页
社区
课程
招聘
[旧帖] [求助]Visual c++ __declspec(naked)函数参数求助 0.00雪花
发表于: 2012-8-28 15:25 1947

[旧帖] [求助]Visual c++ __declspec(naked)函数参数求助 0.00雪花

2012-8-28 15:25
1947
一下代码在visual c++编译中通过。
int Func(int a,int b,int c,int d);

int main()
{
        int i;
        i = Func(1,2,3,4);
        printf("%d",i);
        return 0;
}

__declspec(naked) __stdcall Test(int dummy1)
{
        __asm
        {
                push ebp
                mov ebp,esp
                mov eax,100
                pop ebp
                ret 10H
        }
}

int Func(int a,int b,int c,int d)
{
        Test(a,b,c,d);
}

但是将__declspec(naked) __stdcall Test(int dummy1)这一行改为
__declspec(naked) __stdcall Test()就会编译出错,不知道原因在哪?
敬请各位大虾指点。

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
即然是naked 函数,为什么要加__stdcall
2012-8-29 10:33
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
还有,那个ret 10h,应该 是0x10吧,就算你原来的函数有4个参数,也不用在裸函数里进行堆栈平衡,C语言在函数调用后自动增加esp的,如果你想做个裸函数给其它语言调用,建议你还是在裸函数外面套个C语言函数,再让其它语言调用吧。
2012-8-29 10:36
0
雪    币: 26
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
嗯,有道理。
2012-9-4 11:02
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
学习了  谢啦
2015-4-16 10:10
0
游客
登录 | 注册 方可回帖
返回
//