Python: преобразование строк для использования с ctypes.c_void_p () - PullRequest
7 голосов
/ 25 ноября 2008

с учетом строки:

msg="hello world"

Как я могу определить это как ctypes.c_void_p() тип данных?

следующий код выдает исключение «невозможно преобразовать в указатель»:

data=ctypes.c_void_p(msg)

data должен быть типом void* в C, потому что он передается в DLL.

Я предполагаю, что есть способ упаковать / распаковать строку, используя пакет struct, но, к сожалению, я очень незнаком с этим процессом.

1 Ответ

10 голосов
/ 25 ноября 2008

Как то так? Использование ctypes.cast?

>>> import ctypes
>>> p1= ctypes.c_char_p("hi mom")
>>> ctypes.cast( p1, ctypes.c_void_p )
c_void_p(11133300)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...