9得票2回答
使用Swig将C-enum封装为Python模块

我有一个简单的C语言枚举在myenum.h头文件中: enum MyEnum { ONE, TWO, THREE }; 问题在于,当我将它映射到Python时,我只能通过模块名称而不是 MyEnum 访问枚举。因此,值 ONE、TWO 和 THREE 将与我定义的...

36得票6回答
如何在SWIG包装库中将C++异常传播到Python?

我正在编写一个SWIG包装器,用于封装一个自定义的C++库,该库定义了自己的C++异常类型。该库的异常类型比标准异常更丰富和具体化。(例如,其中一个类表示解析错误,并具有一系列行号。) 我如何保留异常类型将这些异常传递回Python?

22得票3回答
使用SWIG和C#的最佳实践是什么?

有没有人在使用C#时使用过 SWIG 库? 如果您使用过,遇到了什么问题,使用该库的最佳方法是什么? 我打算将其用作对用C编写的程序的包装器,并希望在其中包装可以在我的.NET应用程序中使用的头文件。 编辑:关于目标操作系统的一些澄清。 我计划在Linux和Windows上运行应用程序,因此我...

10得票1回答
如何在64位Windows上从C++返回字符串到C#时避免AccessViolationException?

我正在使用一个第三方专有DLL,但我无法获取其源代码。然而,使用SWIG 1.3.39生成的包装器代码对我来说是可用的。这个包装器代码由一个C++文件组成,它使用一些描述DLL的头文件编译为DLL,以及一个C#项目,该项目通过PInvoke调用C++包装器DLL。 根据供应商文档的解释,我将...

9得票7回答
我能强制 std::vector 产生内存泄漏吗?

我能强制std::vector在向量超出范围后不释放其内存吗? 比方说,如果我有以下代码: int* foo() { std::vector<int> v(10,1); // trivial vector return &v[0]; } int mai...

32得票1回答
使用SWIG在Perl中实现STL map

这是我在SWIG邮件列表中的重复问题。 我试图在我的SWIG绑定中使用STL容器。除了Perl中的STL映射处理外,一切都运行完美。在C++方面,我有:std::map<std::string, std::string> TryMap(const std::map<std:...

13得票1回答
SWIG:如何包装std::string&(以引用形式传递的std::string)

我正在使用SWIG从Java访问C++代码。 如何最简单地公开通过非const引用传递的std::string参数? 由于typemaps.i,我已经将传递的引用作为Java数组公开为基本类型,并且由于std_string.i,const std::string&已公开为java....

7得票1回答
SWIG Python 初始化一个指针为NULL

在处理SWIG模块时,从Python端是否可以将ptr初始化为NULL? 例如,假设我已经在SWIG模块m(_m.so)中包装了一个名为track_t的结构体,我可以通过以下方式从Python创建指向该结构体的指针: import m track = m.track_t() 这将在适...

7得票1回答
用MATLAB调用Java技术

我一直在使用Swig创建一个Java包装器,用于包装一个用C++编写的库。这些包装器被生成到一个包中,然后进行jar打包。这些文件已经正确编译,并且在Java中可以完美地工作,但是我无法从MATLAB中调用它们。 我尝试将jar文件路径添加到MATLAB静态Java路径文件中,然后调用jar...

21得票1回答
Swig Python - C++ 如何使用 int8_t 类型

我有一个C函数,它的参数是一个8位整数。int8_t foo( int8_t x ); 我想使用 SWIG 接口从我的 Python 代码中调用此函数,但在 Python 中不存在 int8_t 类型。 为了存在这种类型,有一个名为 numpy 的 Python 模块。 即使使用这个,我也无法...