Pergunta

dada uma string:

msg="hello world"

Como posso definir isso como um tipo de dados ctypes.c_void_p()?

o seguinte código produz um "não pode ser convertido para ponteiro" exceção:

data=ctypes.c_void_p(msg)

data é necessário para ser um tipo void* em C, porque está a ser passado para uma DLL.

Eu estou assumindo que não há uma maneira de embalar / descompactar a string usando o pacote struct, mas infelizmente estou muito familiarizado com este processo.

Foi útil?

Solução

Algo como isso? Usando ctypes.cast?

>>> import ctypes
>>> p1= ctypes.c_char_p("hi mom")
>>> ctypes.cast( p1, ctypes.c_void_p )
c_void_p(11133300)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top