问题标签 [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 投票
3 回答
298 浏览

c - 如何在 C 中打开数据库句柄并使用 SWIG 将其传递给 Perl?

请帮助我编写 SWIG 交互。

我想在 C 程序中打开一个数据库连接句柄。这个句柄必须传递给 Perl,在这里我将使用 Perl DB 接口与数据库进行交互。出于安全目的,我们想使用这种机制。我想使用 SWIG 接口传递数据库句柄。


补充

我们正在使用 Perl 基础架构来满足我们的业务需求。有太多的用户帐户、数据库服务器遍布整个公司。我们希望企业密码得到保护,并且只允许特权成员使用。早些时候,我们将所有密码放在一个文本文件中并从中读取。如果我们保留其他任何地方,那么他们将能够调试 Perl 模块并找到它们。如果我们在 C 中创建一个句柄并给出相同的句柄而不是返回密码,那将更有帮助。

0 投票
2 回答
352 浏览

python - 如何从 python 中使用 C++ lib

我想知道如何使用 python 调用名为libwpd的 C++ 库来读取完美的文件并从中构建 python 对象,但我没有使用 C++ 或从 python 调用 C++ 函数的经验,我不明白如何弄清楚这些库函数的输出是什么。所以这真的是两个问题:

  • 1) 如何从 python 调用 C++ 函数,以及
  • 2)如何弄清楚这些函数的输出是什么 - 即WPDocument::parse函数的结果(参见 http://www.abisource.com/~uwog/libwpd/)以及如何使用它在我的 python 代码中。该函数似乎返回一个对象WPDResult,但我无法弄清楚它的作用或如何使用它。
我简要地研究了 SWIG,它看起来很有希望。想法?

0 投票
2 回答
3467 浏览

c++ - 在 C 中跟踪 Lua 表

我有 C++ 对象和Lua对象/表。(也有SWIG C++ 绑定。)

我需要做的是关联这两个对象,这样如果我说

它将执行等效的 Lua:

到目前为止,我可以想象 CObject::Update 将具有以下代码:

我将如何存储/设置要使用的 Lua 表,以及 // ???上面的内容如何使 Update 调用工作?

0 投票
2 回答
1027 浏览

python - OpenCV 2.0 与 MacPorts 的 SWIG Python 绑定

你们,

我已经花了 3 天时间试图让 OpenCV Python 绑定发生,而且我有(这里记录了完整的史诗般的斗争)但是尽管在通过 macports 安装 swig 后在 CMake 中打开了 SWIG 标志,我没有得到任何SWIG 行动 :(

我的 cmake 命令如下所示:

这会导致此错误:

所以我想它没有找到我在的那个:

我该怎么说呢?有类似的东西

???

我正在通过 Macports 使用 OSX 10.5.8、Python 2.6 并编译最新的 OpenCV-trunk。

0 投票
1 回答
1307 浏览

c++ - Python ctypes 回调函数到 SWIG

我有一个 SWIG C++ 函数,它需要一个函数指针 (WNDPROC),并想给它一个由 ctypes.WINFUNCTYPE 包装的 Python 函数。

在我看来,这应该是兼容的,但是 SWIG 的类型检查会引发异常,因为它不知道 ctypes.WINFUNCTYPE 类型实际上是 WNDPROC。

我该怎么做才能将我的回调传递给 SWIG 以便它理解它?

0 投票
2 回答
1463 浏览

python - 从 C 访问 PyBuffer 的内容

我在 python 中创建了一个缓冲区对象,如下所示:

我现在byte_stream通过 SWIG 作为参数传递给 C 函数。我有一个用于转换数据的类型图,如下所示:

我尝试了一些不同的东西,错误无法获取我的 byte_stream 的实际内容/值。如何转换或访问我byte_stream使用 C API 的内容?有许多不同的方法可以将 C 数据转换为缓冲区,但我找不到相反的方法。我曾尝试在 gcb 中查看此对象,但无论是它还是它指向包含我的数据的值都没有。

(我使用缓冲区是因为我想避免在从文件中读取数据时将数据转换为字符串的开销)我在 Linux 上使用 python 2.6。

-- 谢谢帕维尔

0 投票
1 回答
256 浏览

php - 在 swig 中为连接 c 和 php 编译时出错

痛饮-php example.i

这将生成 3 个文件 example_wrap.c、php_example.h 和 example.php。第一个文件 example_wrap.c 包含构建 PHP 扩展所需的所有 C 代码。如果您希望将扩展静态链接到 php 解释器,则第二个文件 php_example.h 包含所需的标头信息。第三个文件 example.php 可以包含在 PHP 脚本中。

ya创建了三个文件,然后执行以下编码。

这用于创建 example.so 文件。

但是会显示很多错误,

帮我..

0 投票
1 回答
3179 浏览

python - 在 Python 中,如何访问由 SWIG 包装的 uint16[3] 数组(即解开 PySwigObject)?

这是 Python 问题。我有一个变量 A

A 引用的实例是一个连续数组 uint16[3] ,问题是要从 Python 访问该数组。

在 Python 中,我怎样才能创建一个长度为 3 的变量 B,让我可以读/写访问 A 中包含的指针所指向的同一内存?

我认为这个问题有两个部分:

  1. 如何从 A 中获取指针。(我认为 0x8c66fa0 指向 Swig 对象,而不是包装对象)。
  2. 如何使用内存指针和已知数据类型初始化某种 Python 数组。(Numpy 有一个 frombuffer 方法,但似乎需要一个 frommemory 方法。)也许需要一些转换。

我认为这应该很容易,但我已经阅读和破解了一天多!

为了解决第二部分,我认为一个例子可以这样开始:

然后尝试使用“0x8902f00”和“uint16”构建B(任何向量类型)并测试更改B[2]是否会导致C[2]发生更改。

非常感谢您的建议或一个明确的例子。

问候,

欧文

0 投票
4 回答
1289 浏览

python - 用 python 反汇编 - 没有简单的解决方案?

我正在尝试创建一个 python 脚本,它将反汇编一个二进制文件(准确地说是一个 Windows exe)并分析它的代码。我需要能够获取某个缓冲区,并提取某种结构,其中包含有关其中指令的信息。

我以前在 C 中使用过 libdisasm,我发现它的界面非常直观和舒适。问题是,它的 Python 接口只能通过 SWIG 使用,我无法让它在 Windows 下正确编译。

在可用性方面,diStorm 提供了一个很好的开箱即用接口,但它只提供每条指令的助记符,而不是一个二进制结构,其中包含定义指令类型的枚举等等。这对我的目的来说非常不舒服,并且需要花费大量时间来包装界面以使其符合我的需求。

我还查看了 BeaEngine,它实际上提供了我需要的输出,一个包含有关每条指令的二进制信息的结构,但它的接口非常奇怪且违反直觉,并且当提供错误的参数时它会立即崩溃。CTypes 会导致你的 python 崩溃。

因此,我很高兴听到其他解决方案,这些解决方案比使用 djgcc 或 mingw 来制作 SWIGed libdisasm 或为 diStorm 编写 OOP 包装器所花费的时间要少一些。如果有人对如何编译 SWIGed libdisasm 或更好的编译二进制文件(pyd 或 dll+py)有一些指导,我很想听听/拥有它。:)

提前谢谢。

0 投票
1 回答
393 浏览

java - 解释 Java 原生通信性能

现在,我正在使用 JNA 进行 Java 原生通信,并且对它的简单性感到满意。但是我确实需要优化性能并且正在考虑使用其他绑定。

我的问题是:Java 原生通信的哪一部分是“昂贵”的部分?是它们之间的数据传递吗?

让我换一种说法。现在我的 JNA 接口调用的函数根本不向 Java 传递任何数据,而且这些函数甚至不经常被调用。换句话说,Java 调用一个库调用,然后该库调用自己做一段时间并返回一个原始类型。在那种情况下,JNI/Swig/etc 会比 JNA 快吗?