我听说过SWIG,但是给出的例子并不符合我的需要,因为它们都涉及gcc
。你知道吗
我有一个动态库foo.dll
,以及相应的头foo.h
。你知道吗
在我的图书馆里,我可能有:
// foo.h
typedef int HANDLER;
int init(HANDLER* dh);
int cry(HANDLER dh, int intensity);
int smile(HANDLER dh, int intensity);
int die(HANDLER dh);
我想用python包来包装这个库,可以这样使用:
#!/usr/bin/env python
import foo
him = Foo()
him.cry(20)
him.smile(10)
him.die()
在我的包装背后,我期待着这样的东西:
class Foo:
def __init__(self):
self.foo = cdll.LoadLibrary("foo.dll")
self.handler = p_int()
self.foo.init(pointer(self.handler))
def cry(self):
return self.foo.cry(self.handler)
什么是自动执行此操作的合适工具?你知道吗
我会说Cython,举个例子(?)“cython dll”的第一次搜索给出: http://people.seas.harvard.edu/~krussell/html-tutorial/wrap_dll.html
相关问题 更多 >
编程相关推荐