我初学python 的 ctypes, 现在的环境是 ubuntu 8.04, Python 2.5.2 (r252:60911, May 7 2008, 15:19:09) , gcc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7) 我创建了一个 so 共享库 --------------------- #include <math.h> double myfd(double x) { return x * 2;} float myff(float x) { return x * 3;} int myfi(int x) { return x * 4 ;} --------------------- 用 gcc -shared a.c -o liba.so 来生成了一个 liba.so , 用其它 c 程序链接这个库,里面的函数是能正确运行的 我写了一个python 程序 --------------------- # coding:utf-8 import ctypes as dll p = dll.cdll.LoadLibrary("./liba.so") print p.myfi(8) # 得32,正确 try: print p.myfd(0.3) # 出错 except: print "except myfd()" try: print p.myff(0.4) # 出错 except: print "except myff()" --------------------- 出错提示为 ctypes.ArgumentError: argument 1: <type 'exceptions.TypeError'>: Don't know how to convert parameter 1
这是什么原因? -- http://mail.python.org/mailman/listinfo/python-list