Golang中的Windowscallback函数

我想推送订阅到Golang的Windows事件日志
我该如何传递callback函数?

EVT_SUBSCRIBE_CALLBACK是函数的指针,就像

typedef DWORD ( WINAPI *EVT_SUBSCRIBE_CALLBACK)( EVT_SUBSCRIBE_NOTIFY_ACTION Action, PVOID UserContext, EVT_HANDLE Event ); 

所以,我的变种看起来像这样:

 func logCallback() syscall.Handle { cb := func(_ uintptr, _ uintptr, _ uintptr) uint64 { fmt.Printf("callback called %v", data) return 0 } ptr := syscall.NewCallback(cb) return syscall.Handle(ptr) // type syscall.Handle uintptr } 

我成功地订阅处理程序没有错误,但它仍然无法正常工作。 任何想法为什么? 我应该在哪里看?

当使用系统调用时,请确保在文件顶部包含import "C" 。 很高兴帮助你。