如何将Go函数作为参数传递给C函数?
我想把一个Go函数传递给一个C函数 比如:如何将Go函数作为参数传递给C函数?,c,go,cgo,C,Go,Cgo,我想把一个Go函数传递给一个C函数 比如: stm:=C.struct\u托盘菜单{ .... fn://方法的定义 .... } C.菜单和cb(stm); 并将其传递到C函数中: 静态无效菜单\u cb(结构托盘\u菜单*项){ (b)项目; printf(“菜单:单击%s\n”,项目->文本); } 我只是想知道如何定义C.function之类的东西。主要问题是对C.go定义的误解。 最后的代码是 //导出callOnMeGo func callOnMeGo(在int中)int{ f
stm:=C.struct\u托盘菜单{
....
fn://方法的定义
....
}
C.菜单和cb(stm);
并将其传递到C函数中:
静态无效菜单\u cb(结构托盘\u菜单*项){
(b)项目;
printf(“菜单:单击%s\n”,项目->文本);
}
我只是想知道如何定义C.function之类的东西。主要问题是对C.go定义的误解。 最后的代码是
//导出callOnMeGo
func callOnMeGo(在int中)int{
fmt.Printf(“Go.callOnMeGo():在中用arg=%d\n”调用)
返回+1
}
func main(){
C.some_C_func((C.callback_fcn)(不安全的指针(C.callOnMeGo_cgo)))
//别忘了使用(FunctionDefinedGo\u cgo)for with postfix\u cgo
...
您是否阅读了有关回调的文档?