2010-08-26 6 views
0

Hallo!Objet blob pour python (ctypes), C++

Je veux un objet blob que je peux passer en python et de temps à autre lui donner une fonction C++ à écrire. Ctypes semble le chemin à parcourir mais j'ai un problème avec les fonctions standard de python.

Par exemple:

>>> 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 

Je voudrais vraiment éviter de copier les données si pas nécessaire.

Merci

Répondre

0

Vous aurez probablement plus de chance avec l'aide de tampons de chaîne et d'accéder au contenu par la valeur d'attribut raw

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

Merci, problème résolu, je pense :) – tauran

Questions connexes