草庐IT

CGO_OFILES

全部标签

types - 戈朗 : Export C fields to be externally visible using CGo

背景:我正在尝试制作一个包,该包实质上是围绕我正在使用的C库提供精简的Go包装器。该包有意非常原始,因为其他几个包依赖于C库的低级功能,我不想复制粘贴一堆Go包装器代码。假设我有一个如下所示的C结构:typedefstruct{uint32_tfizz;uint64_tbuzz;}test在CGo中,我包装了C结构并创建了如下新方法:packagetesttypeTestC.testfuncNewTest()*Test{return&Test{1,2}}问题是在包之外,我无法访问C-struct中的字段packagemainimport"test"funcmain(){t:=test.

types - 戈朗 : Export C fields to be externally visible using CGo

背景:我正在尝试制作一个包,该包实质上是围绕我正在使用的C库提供精简的Go包装器。该包有意非常原始,因为其他几个包依赖于C库的低级功能,我不想复制粘贴一堆Go包装器代码。假设我有一个如下所示的C结构:typedefstruct{uint32_tfizz;uint64_tbuzz;}test在CGo中,我包装了C结构并创建了如下新方法:packagetesttypeTestC.testfuncNewTest()*Test{return&Test{1,2}}问题是在包之外,我无法访问C-struct中的字段packagemainimport"test"funcmain(){t:=test.

pointers - cgo指针值改变

我使用cgo绑定(bind)到Capi(子弹物理引擎),一些函数使用数据指针。我的想法是,我可以将一个指针附加到一个对象,并在稍后物理引擎调用回调时检索它。我的问题是,当我取回值(value)时,它发生了变化,而我没有这样做。似乎没有源代码明确地更改值。碰撞对象:source,header,Thegocodesthatinterractswiththatclass这里是我如何发送值,重新转换为*int和int没问题,打印出正确的数字:num:=x*amounty*amountz+y*amountz+z+1ptr:=unsafe.Pointer(&num)fmt.Printf("crea

pointers - cgo指针值改变

我使用cgo绑定(bind)到Capi(子弹物理引擎),一些函数使用数据指针。我的想法是,我可以将一个指针附加到一个对象,并在稍后物理引擎调用回调时检索它。我的问题是,当我取回值(value)时,它发生了变化,而我没有这样做。似乎没有源代码明确地更改值。碰撞对象:source,header,Thegocodesthatinterractswiththatclass这里是我如何发送值,重新转换为*int和int没问题,打印出正确的数字:num:=x*amounty*amountz+y*amountz+z+1ptr:=unsafe.Pointer(&num)fmt.Printf("crea

go - 运行简单的 cgo 文件时遇到错误

我正在尝试测试cgo代码。packagemain//#includeimport("C""fmt")funcmain(){fmt.Printf("test%d\n",int(C.random()))}D:\Dev\Go\src>goversiongoversiongo1.3windows/amd64D:\Dev\Go\src>goenvsetGOARCH=amd64setGOBIN=setGOCHAR=6setGOEXE=.exesetGOHOSTARCH=amd64setGOHOSTOS=windowssetGOOS=windowssetGOPATH=D:\\Dev\\GosetGO

go - 运行简单的 cgo 文件时遇到错误

我正在尝试测试cgo代码。packagemain//#includeimport("C""fmt")funcmain(){fmt.Printf("test%d\n",int(C.random()))}D:\Dev\Go\src>goversiongoversiongo1.3windows/amd64D:\Dev\Go\src>goenvsetGOARCH=amd64setGOBIN=setGOCHAR=6setGOEXE=.exesetGOHOSTARCH=amd64setGOHOSTOS=windowssetGOOS=windowssetGOPATH=D:\\Dev\\GosetGO

go - 使用 golang 时无法从 cgo 例程中获取带有核心文件的堆栈跟踪

我正在使用Golang和cgo。当我的C代码引发assert()时,我无法在使用cgo时看到C代码的堆栈跟踪。相反,我看到了捕获断言的golang运行时的堆栈跟踪。这是我的C代码示例#include#include#include#includevoidfn2(char*arg){intstackvar2=256;printf("Argument%s\n",arg);assert(1==2);}voidfn1(intarg){intstackvar3=512;charvar[256];strcpy(var,"deadbeef");fn2(var);}void*thread(void*a

go - 使用 golang 时无法从 cgo 例程中获取带有核心文件的堆栈跟踪

我正在使用Golang和cgo。当我的C代码引发assert()时,我无法在使用cgo时看到C代码的堆栈跟踪。相反,我看到了捕获断言的golang运行时的堆栈跟踪。这是我的C代码示例#include#include#include#includevoidfn2(char*arg){intstackvar2=256;printf("Argument%s\n",arg);assert(1==2);}voidfn1(intarg){intstackvar3=512;charvar[256];strcpy(var,"deadbeef");fn2(var);}void*thread(void*a

go - 在 Cgo 包中导入 C.scintilla_new()

packagemain//#cgoCFLAGS:-I/home/me/geany/scintilla/include//#includeimport"C"import("github.com/mattn/go-gtk/gtk")funcmain(){gtk.Init(nil)window:=gtk.NewWindow(gtk.WINDOW_TOPLEVEL)window.SetPosition(gtk.WIN_POS_CENTER)window.SetTitle("GTKGo!")window.SetIconName("textview")window.Connect("destroy

go - 在 Cgo 包中导入 C.scintilla_new()

packagemain//#cgoCFLAGS:-I/home/me/geany/scintilla/include//#includeimport"C"import("github.com/mattn/go-gtk/gtk")funcmain(){gtk.Init(nil)window:=gtk.NewWindow(gtk.WINDOW_TOPLEVEL)window.SetPosition(gtk.WIN_POS_CENTER)window.SetTitle("GTKGo!")window.SetIconName("textview")window.Connect("destroy