我听说过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)
自动执行此操作的正确工具是什么?
答案 0 :(得分:0)
我说Cython,并作为示例(?)首先搜索" cython dll"得到: http://people.seas.harvard.edu/~krussell/html-tutorial/wrap_dll.html