从dll执行回调(通过函数ptr)



我从dll得到了一个回调,定义的函数ptr类型:

typedef int32_t (WINAPI *fn) ();

如果我使用cgo,我们可以这样做:

/*
#include <windows.h>
#include <stdint.h>
typedef int32_t (WINAPI *fn) ();
int32_t call_callback(fn f){
f();
}
*/
import "C"
import (
"unsafe"
)
func main() {
var callBackPtr uintptr // from dll function
C.call_callback((C.fn)(unsafe.Pointer(callBackPtr)))
}

但是!我不想使用cgo。我如何才能在纯粹的围棋中实现?

syscall.SyscallN(callBackPtr, [callBack's arg])

最新更新