提问人:Frnk Wdl 提问时间:7/24/2020 更新时间:2/10/2023 访问量:292
SetEvent 状态从 golang 到 c (cgo)
SetEvent state from golang to c (cgo)
问:
我编写了DLL来处理我在golang中的VSCAN通信。我现在面临着一个非常棘手的问题。有没有办法将状态从 cgo 信号到 c/cpp 程序?
我正在使用一个大型 CPP 项目,它在其中调用外部 golang DLL(使用 GCC 编译)。程序传递句柄到事件:
// this is a function from DLL (written in go). I want to pass the event handler there.
VSCAN_STATUS VSCAN_SetRcvEvent(VSCAN_HANDLE Handle, HANDLE Event);
// Calling it from c:
sg_hEventRecv = CreateEvent(nullptr, FALSE, FALSE, nullptr);
VSCAN_SetRcvEvent(1, sg_hEventRecv)
我将传递的 HANDLER 存储在 go dll 中:
package test
import "C"
var event C.HANDLE
func signalState(){
C.SetEvent(event)
}
//export VSCAN_SetRcvEvent
func VSCAN_SetRcvEvent(Handle VSCAN_HANDLE, Event C.HANDLE) int {
event = Event
return 0
}
每次我想从 go 发出状态信号时,它都会返回错误代码 6(无效的处理程序)。
答: 暂无答案
下一个:将颜色导入 Google 日历
评论