SWIG技术研究

发布于 2020-11-08  294 次阅读


综述

详细内容

swig通过*.i文件来定义库的封装内容,样例代码如下:

%module LibMWCaptureCSharp

%{
#include "LibMWCaptureCSharp.h" //在wrap中为#include "LibMWCaptureCSharp.h"
%}

%include "../../sdkv3_c++/Include/LibMWCapture/MWCaptureExtension.h" //在wrap中,内容展开进行封装
%include "LibMWCaptureCSharp.h" ////在wrap中,内容展开进行封装

然后通过命令获取封装文件,以及目标语言的生成文件

echo Invoking SWIG...
echo on
..\..\swig_4_0_1_win\swig.exe -c++ -csharp -outdir common_cs "%(FullPath)"
%40echo off

然后将生成的*.cxx 加入工程,生成动态库供跨语言使用

swig在lib中提供了各语言/windows用于转换的.i文件,可以在.i文件中添加

%include "wchar.i"
%include "windows.i"

朝闻道,夕死可矣