我正在使用 boost::python 导出一些需要void*. 他们在内部将其解释为原始内存(字节数组)。想read和write一些非常特殊用途的装置。
如何将 Python 传递bytearray给这样的函数?
我试过使用,ctypes.c_void_p.from_buffer(mybytearray)但这与函数的签名不匹配。
这是最小的例子:
#include <boost/python.hpp>
void fun_voidp(void*) {}
BOOST_PYTHON_MODULE(tryit) {
using namespace boost::python;
def("fun_voidp", fun_voidp);
}
Run Code Online (Sandbox Code Playgroud)
在蟒蛇方面:
import tryit
import ctypes
b = bytearray(100)
tryit.fun_voidp(b) # fail
tryit.fun_voidp(ctypes.c_void_p.from_buffer(b)) # fail
tryit.fun_voidp(ctypes.c_void_p.from_buffer(b).value) # fail
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1162 次 |
| 最近记录: |