如何仅将 swig 与已编译的 dll 和头文件一起使用

How to use swig with compiled dll and header file only

我已经从 SWIG documentation 中阅读了一些文档(与 c++ 代码相关),但无法确定是否可以生成 Python 扩展模块以防我有 已编译的 dll(未提供源代码)和 头文件,所有函数都在 dll 中声明。
如果有人遇到同样的问题并解决了,能否提供一些有用的例子?
提前致谢。

是的,这是可能的。 SWIG 仅使用 headers 生成包装函数。这是一个简单的 SWIG 文件:

%module mymod
%{
#include "myheader.h"
%}

%include "myheader.h"

然后:

swig -python -c++ mymod.i

然后编译 link 生成的代码作为 Python 扩展 DLL。您还需要在 .lib 中为包装的 DLL 添加 link。