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.

¿Fue útil?

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
scroll top