c++ python 交互之 swig

本文介绍了如何使用SWIG工具将C++代码与Python进行交互。通过SWIG,可以将C++的接口转换为Python模块,便于在Python中调用。文中详细阐述了SWIG的下载、安装过程,以及如何创建一个简单的C++类并将其导出为Python模块,特别强调了回调函数的使用和项目配置的步骤。
摘要由CSDN通过智能技术生成

工作中准备用python 作为脚本语言来实现一些工作于是就研究 可以和c++ 交互的脚本语言
本来一开始用的lua 但是 lua本身API接口很少 要么自己需要重复封装代码 要么c++ 导出
太多地方需要重复造轮子。之所以选择python 是因为python的包多 直接 import 即可食用
好了 废话不多说直接进入正题

swig 是什么?

SWIG 是一种软件开发工具,将用 C 编写的程序与各种高级编程语言C++。SWIG 用于不同类型的目标语言,包括常见的脚本语言,如 Javascript、Perl、PHP、Python、Tcl 和 Ruby。支持的语言列表还包括非脚本语言,如 C#、D、Go 语言、Java(包括 Android、Lua、OCaml、Octave、Scilab 和 R)。还支持几个解释和编译的方案实现(吉勒、MzScheme/Racket)。SWIG 最常用于创建高级解释或编译编程环境、用户界面,并作为测试和原型设计 C/C++软件的工具。SWIG 通常用于解析 C/C++接口,并生成上述目标语言调用 C/C++代码所需的"粘合代码"。SWIG 还可以以 XML 的形式导出其解析树。SWIG 是自由软件,SWIG 生成的代码与商业和非商业项目兼容。

swig 项目下载

http://www.swig.org/download.html

下载以后你将得到一个压缩包 swig-4.0.1.tar.gz 我下载的是4.0版本的

swig 文档介绍的很详细了
大部分可以在文档中找到答案
下载后解压压缩包得到如下结构的目录
3.png

其中 swig.exe 就是我们需要用到的
首先把这个目录添加的系统环境变量 中 的path中去
然后可以进入 目录Examples\
下可以看到 很多语言的使用例子
这里我们进入python 目录可以看到各种c++ 生成python的例子
进入python 目录下后 进入class 目录可以看到 一个很简单 的 c++ 类导出成python 模块的例子

用 Visual Studio 打开 example.dsp 即可 这里有用的 就两种文件
一种是 你的c++ 源文件 头文件 另外一种就是 xxxxx.i的接口文件 这个是 给swig 使用的

swig简单的使用

下面我就简单的用c++给 python 封装一个文件目录监控的例子 来讲吧
首先打开 你的 Visual Studio 新建一个项目 选择win32项目 创建一个 win32 动态库项目

开始写你的c++ 代码
我的代码如下 FileDirectoryMonitor.h

#ifndef __FILEDIRECTORYMONITOR_H__
#define __FILEDIRECTORYMONITOR_H__
#include <string>
#include <memory>
#include <thread>
#include <windows.h>
class POV :public OVERLAPPED
{
public:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值