如何将函数指针作为参数传递给函数?

时间:2021-04-25 00:54:00

标签: c winapi

好的,所以我有以下 typedef 声明:

typedef void (__fastcall* INFINITYHOOKCALLBACK)(_In_ unsigned int SystemCallIndex, _Inout_ void** SystemCallFunction);

我有以下函数声明:

NTSTATUS IfhInitialize(
_In_ INFINITYHOOKCALLBACK InfinityHookCallback);

所以我的问题是如何声明和定义一个可以传递给上述函数的回调函数?

2 个答案:

答案 0 :(得分:0)

只需按照 typedef 定义即可:

void __fastcall MyCallback(unsigned int SystemCallIndex, void** SystemCallFunction) {
// ...
}

并传递它的名字:

IfhInitialize(MyCallback);

答案 1 :(得分:0)

有问题的函数指针类型采用 unsigned intvoid ** 类型的两个参数,并具有返回类型 void。所以像下面这样的函数签名将与此兼容:

void __fastcall mycallback(unsigned int SystemCallIndex, void **SystemCallFunction);
相关问题