【发布时间】:2014-04-14 15:40:16
【问题描述】:
我需要将非 NULL 终止缓冲区从 Python 传递到 C++。我正在使用带符号的 char* 类型的参数而不是 char*,因为后者将被转换为 NULL 终止字符串。 Python 接口是使用 SWIG (2.0.1) 生成的。未应用类型映射,因此 SWIG 应使用其默认映射。当我尝试使用该方法时,出现以下错误:
NotImplementedError:重载函数的参数数量或类型错误
作为缓冲区,我尝试同时传递字符串和字节数组对象。在这两种情况下,我都会收到上述错误。
如果我在 C++ 中有这样的函数,我应该在 Python 中传递什么类型的对象?
void set_value(signed char *buffer, int size)
【问题讨论】:
-
缓冲区如何限制?
-
我提供了缓冲区的大小。编辑帖子以显示这一点。
-
那么,我认为你必须编写一个自定义类型映射。
-
由于 SWIG 为这个函数生成了一些接口,我想知道它期望什么类型以及我是否可以使用它并避免编写类型映射。
-
你必须写一个类型映射。请参阅几天前类似问题中的this answer。
标签: python type-conversion swig