[python] Pole v ctypes

Radek Machulka radek.machulka na gmail.com
Neděle Únor 7 18:03:06 CET 2010


Zdar,

posledni dobou se to tu celkem rozjelo, tak prihodim i ja svoji trosku do 
mlyna.

Snazim se napsat vlastni wrapper okolo C knihovny (LabView) pomoci modulu 
ctypes. Jeden problem, na ktery jsem narazil je transformace datovych typu, 
predevsim pole. Fukce v pythonu dostane jako vstupni parametr pole (iterable), 
ktery musi prevest na pole v C a predat C funkci. Podle toho co jsem nasel by 
melo reseni vypadat nasledovne (pro pole o delce 3):

float64 = ctypes.c_double
array = float64 * 3
cInp = array(pInp[0], pInp[1], pInp[2]),

kde pInp je pole v pythonu a cInp je pole v C.

Jak predchozi priklad upravit tak, aby podporoval vstupni pole (pInp) o 
libovolne (cti predem nezname) delce? Da se predpokladat, ze druhy radek bude 

array = float64 * len(pInp),

ale co ten treti?

Predem dik
Radek


Další informace o konferenci Python