我有以下 C 代码。我正在尝试使用Python从Python调用这个函数ctypes
:
int add ( int arr [])
{
printf("number %d \n",arr[0]);
arr[0]=1;
return arr[0];
}
我用以下方法编译了这个:
gcc -fpic -c test.c
gcc -shared -o test.so test.o
然后把它放进去/usr/local/lib
.
Python对此的调用是:
from ctypes import *
lib = 'test.so'
dll = cdll.LoadLibrary(lib)
IntArray5 = c_int * 5
ia = IntArray5(5, 1, 7, 33, 99)
res = dll.add(ia)
print res
但我总是得到一些大数字,比如-1365200
.
我也尝试过:
dll.add.argtypes=POINTER(c_type_int)
但它不起作用。
相反,请尝试:
dll = cdll.LoadLibrary('test.so')
res = dll.add(pointer(c_int(5)))
print res
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)