例如,能够做到这一点就很好了:
from ctypes import CDLL
mylib = CDLL('/my/path/mylib.so',header='/some/path/mylib.h')
而不是
from ctypes import *
mylib = CDLL('/my/path/mylib.so')
mylib.f.restype = c_double
mylib.f.argtypes = [c_double, c_double]
mylib.g.restype = c_int
mylib.g.argtypes = [c_double, c_int]
我使用python的经验表明,要么是已经做了一些非常接近的事情,而我只是找不到它,要么是有一个很好的理由不去做。这两种情况中有哪一种是这样吗?
发布于 2011-02-18 02:48:42
我问自己同样的问题,在我走得太远之前,我遇到了ctypesgen:
http://code.google.com/p/ctypesgen/
它将为您处理所有这些,尽管您需要在前面进行一些学习。我们使用ctypesgen为Subversion绑定生成一个版本的Python绑定。它工作得很好。
https://stackoverflow.com/questions/5033162
复制相似问题