Blob-объект для Python (ctypes), C ++ - PullRequest
       6

Blob-объект для Python (ctypes), C ++

0 голосов
/ 26 августа 2010

Hallo!

Мне нужен объект blob, который я могу передавать в python и время от времени отдавать его функции C ++ для записи.

ctypes кажется правильным, но у меня проблема со стандартными функциями python.

Например:

>>> import ctypes
>>> T=ctypes.c_byte * 1000
>>> blob = T()
>>> ctypes.pointer(blob)
<__main__.LP_c_byte_Array_1000 object at 0x7f6558795200>

# Do stuff with blob data through the pointer in C++

>>> f = open('test.bin', 'wb')
>>> f.write(blob)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: argument 1 must be string or buffer, not _ctypes.ArrayType

Я бы очень хотел избежать копирования данных, если в этом нет необходимости.

Спасибо

1 Ответ

0 голосов
/ 26 августа 2010

Вам, вероятно, повезет больше с использованием строковых буферов и доступом к содержимому через значение атрибута raw

pstr = ctypes.create_string_buffer( 1000 )
f.write( pstr.raw )
...