Python: convertir cadenas para usar con ctypes.c_void_p ()
Pregunta
dada una cadena:
msg="hello world"
¿Cómo puedo definir esto como un tipo de datos ctypes.c_void_p ()
?
el siguiente código produce un " no se puede convertir en puntero " excepción:
data=ctypes.c_void_p(msg)
Se requiere que data
sea un tipo void *
en C, porque se pasa a un archivo DLL.
Supongo que hay una manera de empacar / desempaquetar la cadena usando el paquete struct
, pero desafortunadamente no estoy muy familiarizado con este proceso.
Solución
¿Algo como esto? Usando ctypes.cast
?
>>> import ctypes
>>> p1= ctypes.c_char_p("hi mom")
>>> ctypes.cast( p1, ctypes.c_void_p )
c_void_p(11133300)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow