我正在使用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);
}
答案 0 :(得分:3)
我非常修复函数原型以获取char*
并使用最后一条python线。
没有理由在C ++中使用void*
。我理解API是否存在,但用自己的函数包装起来应该不难。