问题标签 [swig]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1015 浏览

.net - 带有托管子类的非托管基类

是否有可能:

  1. (非托管)C++ 中的纯抽象类(基本上是接口)
  2. 已使用 <插入您选择的 .net 语言> 管理此类的实现
  3. 从(非托管)C++ 使用这些托管实现

使用 SWIG 或一些 C++/CLI 胶水?

0 投票
2 回答
935 浏览

c++ - 如何在 Perl 中使用指向来自 SWIG 的 char 的指针?

我使用SWIG为 C++ 程序生成 Perl 模块。我在 C++ 代码中有一个函数,它返回一个“char 指针”。现在我不知道如何在 Perl 中打印或获取返回的 char 指针。

示例 C 代码:

我想在 Perl 中调用这个函数“结果”并打印字符串。

怎么做?

问候, 阿南丹

0 投票
6 回答
11250 浏览

python - 如何在 SWIG 包装器库中将 C++ 异常传播到 Python?

我正在围绕自定义 C++ 库编写一个 SWIG 包装器,该库定义了自己的 C++ 异常类型。该库的异常类型比标准异常更丰富、更具体。(例如,一个类表示解析错误并具有一组行号。)如何在保留异常类型的同时将这些异常传播回 Python?

0 投票
2 回答
963 浏览

perl - 如何使用 SWIG 从 Perl 访问 C++ 程序的列表模板?

我想从 Perl 脚本访问 C++ 程序的模板列表并使用这些值。

示例代码:

我使用了一个 swig 生成的 api 并执行了以下操作:

现在打印为:

如何使用这个从结构中获取值?

从重复的问题更新:

在我放的接口文件中

在我生成“.pm”文件之后。我检查了此列表中可用的 API。

我发现

我能够使用这些元素。但我不知道如何使用这些 API 访问列表的各个元素?还是我在接口文件中遗漏了什么?

更新:

typemap 可以在这里将列表作为数组返回吗?

0 投票
2 回答
200 浏览

swig - 如何为新语言添加绑定?

因此,您必须创建自己的内置于 .NET C# 的脚本语言。图书馆现在有什么更好的?(想想 SDL/OPENGL),使用 Swig 生成包装器还是手动生成?还有其他选择吗?

0 投票
1 回答
12606 浏览

c - 使用 CMake 生成 SWIG 绑定

如何为使用 CMake 构建的 C 项目生成自动绑定?

我想自动为 Python、Java、.NET、PHP、Perl、TCL、Ruby 和 Octave 生成​​绑定。

0 投票
2 回答
2792 浏览

c++ - 如何为指针引用定义 SWIG 类型映射?

我有一个用 C++ 编写的 Publisher 类,有以下两种方法:

此类的 Python 绑定是使用 SWIG 生成的。在我的 swig .i 文件中,我有以下内容:

这让我可以发布一个在 Python 变量中定义的字段:

但是,尝试使用 GetFieldReference 方法会导致 TypeError:

我想我需要为返回 ptrDouble 的 double*& 创建一个类型映射,但我不太确定它会是什么样子。

0 投票
2 回答
549 浏览

types - SWIG / Lua:确定成员字段数据类型

SWIG 慷慨地提供了 swig_type() 函数来获取传递的 userdata 对象的数据类型的字符串表示形式。但是,对于成员字段,SWIG 和 Lua 将它们视为简单的“数字”项,因此仅打印“数字”而不是数据类型的名称。

例如

在 C++ 中会导致:

我可以采取一些后门路线来确定成员字段的数据类型吗?我看到 get 和 set 函数在验证参数时具有正确的数字字段字符串表示形式。

感谢您的帮助!

0 投票
1 回答
1459 浏览

interface-builder - 将 SWIG 与构建系统一起使用

有人有使用 SWIG(接口生成器)的经验吗?

我有一个 C 项目,我想向一堆其他语言/框架公开,比如 Python、Java、.NET、Perl、PHP、Ruby。

我想与我的构建系统(基于 CMake)集成,但任何实现这一点的方法都可以。

0 投票
2 回答
1043 浏览

java - Java 和 SDL_GetKeyState()

我正在尝试将一些使用 SDL 的代码转换为 Java。我正在使用 sdljava 绑定。

sdljava 使用 SWIG 作为 C 数据类型和 Java 之间的桥梁。为了得到 的等价物SDL_GetKeyState(),sdljava 提供了方法SWIG_SDLEvent.SDL_GetKeyState(),它返回一个叫做 a 的东西SWIGTYPE_p_unsigned_char

当然,Java 没有unsigned char类型,我不知道编译器认为这种 SWIG 类型实际上对 Java 代表了什么。在 C/C++ 中的正常使用SDL_GetKeyState()类似于:

...其中 SDL 键状态值(如 SDLK_UP)索引到数组中。

但是,以下 Java 代码:

导致编译器错误,“表达式的类型必须是数组类型,但它解析为 SWIGTYPE_p_unsigned_char。”

我想知道的是,在调用 SWIG_SDLEvent.SDL_GetKeyState() 之后,您如何使用它返回的内容来检查各个键的状态?