模块ctypes
加载CDLL('./test.so')
Windows中使用D:\\Path\\to\\*.dll
libc = ctypes.CDLL(PATH)
C类型转换c_float(3.14)
a=c_float(3.14)
函数调用libc.printf(b"hello")
除了整数和字符串都需要封装在相应的ctypes类型
1 | #b表示2进制,u表示unicode |
也可以指定所需的参数类型printf.argtypes
, 对应的类型见表
1 | printf.argtypes = [c_char_p, c_char_p, c_int, c_double] |
c语言 | ctypes |
---|---|
float | <ctypes.c_float> |
double | <ctypes.c_double> |
char* | <ctypes.c_char_p> |
编译方法
Mac 中使用gcc -shared -Wl,-install_name,test.so -o test.so -fPIC test.c
转载请注明来源 https://tianweiye.github.io