【发布时间】:2021-03-17 06:57:31
【问题描述】:
我尝试在头文件中声明一个裸函数原型:
inline __declspec(naked) void HookSoundFileSub_BZCC_Asm(char *Src, int pedx, int a3, int a4, int a5, int a6);
inline __declspec(naked) void __stdcall HookDamageSub_BZCC_Asm(DWORD * ecx, int ebp, int edi, int a4, long long *a5, int a6);
我收到此错误 (C2488) 'identifier' : 'naked' 只能应用于非成员函数定义:
有人建议??
谢谢!!
更新:
我已经尝试过这段代码:
void HookSoundFileSub_BZCC_Asm(char *Src, int pedx, int a3, int a4, int a5, int a6);
void __stdcall HookDamageSub_BZCC_Asm(DWORD * ecx, int ebp, int edi, int a4, long long *a5, int a6);
没有编译错误,但函数崩溃。
如果我在主 c++ 文件中正确使用这些函数,但我喜欢将其插入到不同的 c++ 文件模块中。
【问题讨论】:
-
据我了解,naked 属性只与函数的定义有关,不能在函数的原型(/declaration)中指定。所以这无论如何都会产生编译器错误。
标签: c++ compiler-errors reverse-engineering