2008-11-25 3 views
7

einen String gegeben:Python: Strings für die Verwendung mit ctypes.c_void_p Umwandlung()

msg="hello world" 

Wie kann ich dies als ctypes.c_void_p() Datentyp definieren?

der folgende Code ergibt eine Ausnahme „kann nicht auf Zeiger umgewandelt werden“:

data=ctypes.c_void_p(msg) 

data ist erforderlich, ein void* Typ in C sein, weil es zu einer DLL übergeben wird.

Ich nehme an, es gibt eine Möglichkeit, die Zeichenfolge mit dem struct Paket zu packen/entpacken, aber leider bin ich sehr mit diesem Prozess nicht vertraut.

Antwort

10

So ähnlich? Unter Verwendung ctypes.cast?

>>> import ctypes 
>>> p1= ctypes.c_char_p("hi mom") 
>>> ctypes.cast(p1, ctypes.c_void_p) 
c_void_p(11133300) 
+0

Ich glaube, das ist genau das, was ich suche. Danke! – Thedaego

Verwandte Themen