Už asi vím. Tohle funguje: >>> from ctypes import * >>> lib = CDLL('./testlib.so') >>> c_int.in_dll(lib, 'a') c_long(1243) >>> c_int.in_dll(lib, 'a').value = 5678 >>> c_int.in_dll(lib, 'a') c_long(5678)
-- Jan Martinek Jan Martinek wrote: > Ahoj, > > mám soubor "testlib.c", který obsahuje jediný řádek, a to > > int a = 1243; > > Z toho udělám sdílenou knihovnu > gcc -shared testlib.c -o testlib.so > > natáhnu ji do pythonu pomocí ctypes > > >>> from ctypes import * > >>> lib = CDLL('./testlib.so') > >>> lib.a > <_FuncPtr object at 0xb7f3d7e4> > > což se zřejmě úspěšně podaří, ale vůbec netuším, jakým způsobem se > dostat k té hodnotě 1243. Nevíte to někdo? > Když mám v té knihovně nějaké funkce, tak s jejich voláním nemám > problém, ale nevím, jakým způsobem přečíst a změnit globální proměnnou. > > Díky > Jan Martinek > _______________________________________________ > Python mailing list > Python@py.cz > http://www.py.cz/mailman/listinfo/python _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python