python - Passing a byte array to a C++ function that accepts a void pointer -


i'm using boost::python export c++ functions expect void*. interpret raw memory (an array of bytes) internally. think read , write special purpose device.

how pass python bytearray such function?

i have tried using ctypes.c_void_p.from_buffer(mybytearray) doesn't match signature of function.

here's minimal example:

#include <boost/python.hpp>  void fun_voidp(void*) {}  boost_python_module(tryit) {     using namespace boost::python;     def("fun_voidp", fun_voidp); } 

and @ python side:

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 

i'd fix function prototype take char* , go last python line.

there's no reason use void* in c++. understand if api does, shouldn't hard wrap own function.


Comments

Popular posts from this blog

angular - Ionic slides - dynamically add slides before and after -

minify - Minimizing css files -

Add a dynamic header in angular 2 http provider -