有一dll和对应的lib文件,含有以下函数:
test.h
class Test
{
private:
int a;
int b;
public:
int r;
Test(int, int);
int add();
int getV(Test*);
};
则可以编写对应的.i文件:
test.i
%module test
%{
#define SWIG_FILE_WITH_INIT
#include "dlltest.h"
%}
int add(int a, int b);
class Test
{
private:
int a;
int b;
public:
int r;
Test(int, int);
int add();
int getV(Test*);
};
使用swig:
swig -c++ -python test.i
得到对应的test.py和test_wrapper.cxx文件。
将得到的这两个文件以及库lib文件一起编译成一个test.dll文件,再将该dll文件改名为_test.pyd。
将test.py和_test.pyd以及依赖的dll库放到同一文件夹下,即可再该文件夹下import test并调用