gpt4 book ai didi

c++ - 裸函数原型(prototype)声明

转载 作者:行者123 更新时间:2023-12-03 07:39:15 25 4
gpt4 key购买 nike

我试图在头文件中声明一个裸函数原型(prototype):

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' 只能应用于非成员函数定义:
https://docs.microsoft.com/en-us/cpp/error-messages/compiler-errors-1/compiler-error-c2488?view=msvc-160
有人建议??
谢谢 !!
更新:
我已经尝试过这段代码:
 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++ 文件模块中。

最佳答案

URL你提供的很清楚。

naked can only be applied to non-member function definitions, notdeclarations.

// C2488.cpp
// compile with: /c
// processor: x86
__declspec( naked ) void func(); // C2488 declaration, not definition
__declspec( naked ) void i; // C2488 i is not a function

__declspec( naked ) void func() {} // OK
只需将 __declspec(naked)从函数声明到定义。
裸函数.cpp:
__declspec(naked) void NakedFunction() { /* ... */ }
裸函数.h:
void NakedFunction();
主要.cpp:
#include "NakedFunction.h"

int main()
{
NakedFunction();
return 0;
}
一切正常。

关于c++ - 裸函数原型(prototype)声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65156832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com