Question

ayant reçu une chaîne:

msg="hello world"

Comment puis-je définir cela comme un type de données ctypes.c_void_p () ?

le code suivant génère un " ne peut pas être converti en pointeur " exception:

data=ctypes.c_void_p(msg)

data doit être un type void * en C, car il est transmis à une DLL.

Je suppose qu'il est possible de compresser / décompresser la chaîne à l'aide du package struct , mais malheureusement, je ne suis pas très familiarisé avec ce processus.

Était-ce utile?

La solution

Quelque chose comme ça? Utilisation de ctypes.cast ?

>>> import ctypes
>>> p1= ctypes.c_char_p("hi mom")
>>> ctypes.cast( p1, ctypes.c_void_p )
c_void_p(11133300)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top