将字节数组传递给接受void指针的C ++函数

时间:2017-09-12 08:29:31

标签: python boost

我正在使用boost :: python导出一些期望void*的C ++函数。它们在内部将其解释为原始内存(字节数组)。想一些非常特殊的设备{/ 1}}和read

如何将Python write传递给这样的函数?

我尝试过使用bytearray,但这与函数的签名不符。

这是最小的例子:

ctypes.c_void_p.from_buffer(mybytearray)

在python方面:

#include <boost/python.hpp>

void fun_voidp(void*) {}

BOOST_PYTHON_MODULE(tryit) {
    using namespace boost::python;
    def("fun_voidp", fun_voidp);
}

1 个答案:

答案 0 :(得分:3)

我非常修复函数原型以获取char*并使用最后一条python线。

没有理由在C ++中使用void*。我理解API是否存在,但用自己的函数包装起来应该不难。