草庐IT

java - 使用 SWIG 返回一个 java 对象数组

我正在使用SWIG为C++库编写JNI包装器。库中的一种方法返回分配内存中的结构数组:typedefstruct{intid;doublex;doubley;}DataStruct;intget_all_data(longref,DataStruct**ppdata,size_t*psize){//...preparethedatabytheref*ppdata=(DataStruct*)malloc(sizeof(DataStruct)*size);*psize=size;return0;}Java中的方法签名应如下所示:nativeDataStruct[]get_all_data(

c# - 为包装 C++ 的 swig 生成的 C# 生成 doxygen 注释

我有一个用C++编写的项目,我也在其中使用swig生成一些C#包装器。C++代码使用Doxygen风格的注释来注释类和函数。是否可以让Swig获取这些doxygen注释并为C#包装器类和函数生成doxygen注释? 最佳答案 目前,SWIG根本不解析代码注释,包括Doxygen文档。几年来有一个SWIG分支正在开发中,以使SWIG能够处理Doxygen注释,但即使是目前(AFAIK)也只能将它们映射到Java和Python文档。因此,目前最好的选择是从C++源代码中提取Doxygen文档并将其插入到SWIG生成的包装器中。要了解如何

c++ - (Swig to python)导入错误:dynamic module does not define init function

我正在尝试通过swig将我的C++代码移植到Python。当我完成py、pyd、cxx和lib文件的构建时,在Python(命令行)下,我键入“模块Dnld”,它显示->导入错误:动态模块未定义初始化函数。以下是我的代码,进一步:添加我的构建步骤以避免误解,谢谢MarkTolonen文件->新建->项目->Windows控制台应用程序->选择DLL和空项目(无unicode)将我的SerialComm文件夹添加到项目中(包括DownloaderEngine.hSerial.hPortEnumerator.h等)。配置属性->c/c++->附加包含目录->C:\Python27\incl

java - Swig 类型映射将变量地址作为参数传递?

我为以下C++代码创建了JNI包装器。add.hclassMyClass{public:intadd(intx,inty,int&z);intsub(intx,inty);};上面提到的代码就是.h文件添加.cppintMyClass::add(intx,inty,int&sum){sum=x+y;return0;}intMyClass::sub(intx,inty){returnx-y;}swig.i%modulealgo%{#defineSWIG_FILE_WITH_INIT#include"add.h"%}%include"arrays_java.i"%include"typem

java - 在 java 类上生成 C++ 包装器的工具

据我了解,SWIG是包装C++/C使其出现在Java中,而javah是在C++中实现某些java函数(又名native函数)。有没有一种工具可以在java类上创建C++包装器,以便调用者。这个c++包装器不必担心java,例如输入Java是classhw{publicvoidhi(){System.out.println("HelloWorld");}}工具输出hw.hh(和一些.c++文件),可用作:hw*h=newhw(/*JEnv*/env);h->hi();有没有可用的工具可以做到这一点? 最佳答案 选项包括以下内容,按您的

c# - 通过 SWIG 为 C# 编译 Quantlib

任何人都有使用SWIG的经验?我目前正在研究QuantLib并看到可以使用SWIG生成C#代码。我们正在探索使用QuantLib和专有闭源库(可能以.Netdll形式提供)来创建财务函数组合库的选项。这个想法是将这两者结合起来创建一个统一的super库。我看过.NetportofQuantLib,但它似乎没有得到积极维护(并且不完全确定实际移植了多少),所以我避免使用它。第1步是评估生成可“随处”使用的库的难度,即MS办公应用程序(通过VBA)、控制台应用程序以及服务器端(例如Web应用程序)。我假设这涉及COMInterop,但我不知道从哪里开始,或者我是否在正确的轨道上。我没有使用

c++ - 使用 swig typemap 将 vector<pair<int,int>> & 从 c++ 方法返回到元组的 python 列表

我在尝试使用%typemap(out)包装一个将对vector对的常量引用返回到Python元组列表的C++方法时遇到了很多麻烦。我目前有这样的东西:我的类.h:#inlcudeusingstd::vector;classMyClass{private:constvector>&_myvector;public:MyClass(constvector>&myvector);constvector>&GetMyVector()const;}我的类.cpp:#include"myclass.h"MyClass::MyClass(constvector>&myvector):_myvecto

c++ - 使用 SWIG 将 vector 公开为内存 View

我有一个像这样的头文件:#includeinlinestd::vector&vec(){staticstd::vectorv{'a','b','c','d'};returnv;}inlineconststd::vector&cvec(){returnvec();}我可以wrapitinSWIGusingstd_vector.iandpyabc.i但这是非常低效的(每次访问都在C++和Python代码之间跳转)并且考虑到这些实际上只是一堆字节,我应该能够用Python'smemoryviewinterface包装它们.如何公开我的std::vector作为Pythonmemoryview

c++ - 如何使用 autotools 在构建库的同时构建 Python 接口(interface)

我目前有一个用C++编写的库,使用GNU自动工具构建,我想向它添加一个Python接口(interface)。我使用SWIG开发了界面,但我在弄清楚如何将Python模块的编译与其余过程集成时遇到了一些问题。我已经查看了AM_PATH_PYTHON,但是这个宏似乎没有为Python.h设置包含路径,所以当我编译我的模块时,我得到了一堆关于缺少包含文件的错误。有没有办法从AM_PATH_PYTHON中获取Python包含路径和ldflags?仅作记录,我认为不可能使用Python的distutils方法(setup.py),因为这需要库的位置才能链接新模块。由于该库在编译时尚未安装,我将

c++ - 如何在 VS2010 中痛饮?

大家好,我正在尝试将我在VS2010(c++)中制作的多文件项目痛饮到python。我已设法链接Python26.lib文件,并让SWIG为我的主.cpp文件生成一个包装器.cpp文件。我已将我的代码设置为构建一个扩展名为.pyd的.dll。这是我目前拥有的.i文件:%moduleHiveGPS%{#include"ou_thread.h"#include"HiveGPS.h"%}%includeou_thread.h%includeHiveGPS.h我已经设法获得.py和.pyc文件。现在,根据我的理解,为了运行我的.py文件,我需要将它链接到我的.pyd文件,但是当我尝试使用VS2