我需要帮助在Golang与C++。
项目历史记录:
1.我有一个C应用程序的游戏超过10年。
1.现在我试着用Golang改写它。
1.我发现旧的使用libEvent,我尝试将c打包成DLL,并在Golang中使用DLL。
发行日期:
当我尝试使用代码时,例如:
在Cpp-DLL中
event * Go_event_new(struct event_base *, event_callback_fn, void *)
在戈兰
m_pRpcEvent := api.Cpp_event_new(uintptr(p.PROP_m_pEventBase), uintptr(rpcFunc), uintptr(this))
**它返回错误并造成内存泄漏。
我能为LibEvent做些什么?
1条答案
按热度按时间ujv3wf0j1#
要在Golang中使用libent,可以使用cgo工具,它允许你从Go语言中调用C代码,下面是一个例子,说明你如何在Go语言中使用libent:
1.首先,你需要安装libevent和它的开发文件,在Debian或Ubuntu上,你可以通过运行sudo apt-get install libevent-dev来完成,在其他系统上,你需要使用包管理器或从源代码构建来安装libevent。
1.接下来,你需要创建一个Go语言文件,在文件的顶部包含一个#cgo指令,该指令告诉cgo工具编译并链接它后面的C代码,下面是一个例子来说明你应该如何做:
1.在上面的例子中,#cgo指令告诉cgo工具在编译Go代码时链接-levent库;#include指令告诉cgo在编译C代码时包含指定的头文件; import“C”行告诉cgo在最终的二进制文件中包含它后面的C代码。