草庐IT

SWIG_NewPointerObj

全部标签

c++ - 如何使用 SWIG 和 CGO 将 io.Reader 转换为 std::istream?

我正在尝试使用SWIG为使用std::istream读取二进制数据的C++API创建Go包装器。我希望能够将io.Reader传递给这些API,但我不确定如何在它和std::istream之间创建映射。我知道我需要实现一个std::streambuf子类,我假设其余部分将涉及Controller和类型映射,但我对SWIG不够熟悉,无法找出正确的组合。有什么想法吗? 最佳答案 io.Reader过于笼统,无法传递给C函数——它可能根本无法支持真实文件(它只是一个实现Read(...)函数的类)你可以做的(只要你不在windows上)是

c++ - 是否有一个示例如何使用 SWIG 通过 go build 生成 C++ 建筑?

我想用“gobuild”构建我的项目。我还没有找到任何关于如何将swig与go构建过程集成的文档。而且也很重要,它应该是一个C++示例C很容易。foo.swig/*foo.i*/%modulefoo%{#include"foo.h"%}%include"foo.h"foo.h#pragmaonceintfoo(inta,intb);classMyClass{inta,b,c;public:MyClass(inta,intb,intc):a(a),b(b),c(c){}intfoo(){return(a+b)*c;}intbar(){returna*(b+c);}};foo.cpp#in

c++ - Go + Swig 使用外部库构建

我正在尝试使用opencv函数构建一个cpp文件。Go1.3声明swigbuilding现在捆绑在gobuild工具中,但我没有找到一种方法来告诉该构建工具使用pkg-config添加includedirs和libsargs。gotest-xcv_test.gocd/Users/pierre/Projects/go-swigclang++-I.-fPIC-m64-pthread-fno-caret-diagnostics-Qunused-arguments-fmessage-length=0-fno-common-g-O2-o$WORK/_/Users/pierre/Projects/

c++ - 在 SWIG 中包含 OpenCV core.hpp 时出现语法错误

我正在尝试使用SWIG包装OpenCV的C++API。但是,当我编译时,出现了这个错误:/usr/local/Cellar/opencv/2.4.10.1/include/opencv2/core/core.hpp:123:Error:Syntaxerror-possiblyamissingsemicolon.这是我的SWIG文件%moduleexample%{#include"opencv2/core/core.hpp"%}%include"opencv2/core/core.hpp"我不确定这是来自SWIG还是来自OpenCV的错误。像这样只包含core.hpp可以吗?谢谢。

c++ - 使用 Swig 从 Go 中使用 C++ 类

我想在Windows7中通过swig使用Go中的C++类当我构建项目“gobuildmain.go”时出现以下错误:c:\..\Temp\go-build591352403/swtest.a(swtest_wrap.o):malformedpefile:__cgo_topofstack:invalidsymbolbinding105我在Windows7中使用go1.332bit、gcc4.8.132bit和swig3.0。我在Windows7中使用64位Go和GCC时看到同样的错误。我能够使用64位go和gcc在Ubuntu上成功构建和运行。我在Windows中遗漏了什么吗?这是文件结

go - 如何在 Go 和 Swig 中使用 LPCWSTR?

我正在尝试使用Swig将C库与Go结合使用。这是简化的代码,我知道我可以使用cgo,但我需要在Swig中使用带有LPCWSTR参数的函数。我在https://github.com/AllenDang/w32/blob/c92a5d7c8fed59d96a94905c1a4070fdb79478c9/typedef.go上看到了LPCWSTR相当于*uint16所以syscall.UTF16PtrFromString()似乎是我需要的,但是当我运行代码。我想知道我是否应该使用SwigcptrLPCWSTR。libtest.c#include#include#include"libtest

c++ - 通过 SWIG 从 C++ 调用 Go 回调函数

我正在尝试调用C++函数:voidTestFunc(void(*f)(void)){f();}来自Go代码。我真的希望我只是将一个Go函数传递给该函数。我知道我可以将它包装到一个类中,并使用%feature("director")解决它,但这不是我的最佳解决方案。根据我在thispage中看到的内容,Go中指向函数的指针,应该与C++中的相同,所以我尝试了以下.swig文件:%{#include"test.h"%}%typemap(gotype)FUNC*"func()"%typemap(in)FUNC*{$1=(void(*)(void))$input;}%applyFUNC*{vo

android-ndk - 是否可以使用带有 cgo 和/或 SWIG 或类似工具的 NDK 在 Go 中构建 Android 游戏?

完全可以使用Go来构建Android游戏吗?我并不拘泥于主题行中提到的技术。我知道somepeople已经用Go构建了一些Android程序,但它们可能是headless的。 最佳答案 不,现在不可能。Go和C程序可以通过cgo进行互操作。但在那种情况下,Go程序必须在将控制权传递给程序的基于C的部分之前启动并初始化其运行时。在Android中使用NDK时,Dalvik虚拟机会通过dlopen调用您的C代码。因此Go运行时将没有机会初始化自己。 关于android-ndk-是否可以使用带

c++ - SWIG:映射 typedef 数组

我正在使用SWIG为某些C++类创建Ruby包装器。这是给我带来麻烦的C++方法的签名:virtualLogPwordProb(VocabIndexword,constVocabIndex*context);这是VocabIndex的定义:#ifdefUSE_SHORT_VOCABtypedefunsignedshortVocabIndex;#elsetypedefunsignedintVocabIndex;#endif这是我从Ruby脚本中调用它的方式:index=8context=[index]putsngram.wordProb(index,context)这是我在运行脚本时遇到

python - SWIG + setup.py : ImportError: dynamic module does not define init function (init_foo)

我正在尝试用swig在test.cpp中包装函数foo。我有一个headerfoo.h,其中包含函数foo的声明。test.cpp依赖于位于/usr/lib64ex.h和共享对象文件libex.so/我关注了blogpostfromhere.我可以使用pythonsetup.pybuild_ext--inplace构建模块。但是,当我尝试导入它时,出现以下错误,我不确定我遗漏了什么,因为大多数其他出现此错误的问题都没有使用setup.py文件。下面是我目前拥有的示例。导入_foo时的错误:>>>import_fooImportError:dynamicmoduledoesnotdefi