Python: conversion de chaînes à utiliser avec ctypes.c_void_p ()
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 ??code> 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.
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