Python调用C++编写的方法

Python语言的处理速度不太理想,所以一些对速度要求较高的模块我们会采用C语言或者C++语言编写,然后由Python语言调用。
本文章讲解Windows操作系统下Python调用C/C++编写的动态链接库文件(Windows操作系统的动态链接库文件的扩展名为dll,Linux操作系统的动态链接库文件的扩展名为so,本文章讲解的为Windows操作系统,所以本文中以后的动态链接库文件均指扩展名为dll文件的动态链接库文件)。
本文章的软件环境为:Dev-C++ 5.7.1 + Python3.7

下面开始正式讲解:
在Dev-C++ 中新建一个工程
点击File >>> New >>> 点击Project
出现一下界面
Dev截图选中DLL,填入合适的项目名称,点击“OK”

删除项目中的"dll.h" 和 "dllmain.cpp"文件

新建自己需要的文件并编写自己的C/C++代码。
此处本人举一个栗子:
新建“DllTest.h” 和 “DllTest.cpp” 文件(项目名称为DllTest)
组织结构如下:
在这里插入图片描述
在"DllTest.h" 文件中写入一下代码:
在这里插入图片描述
"DllTest.h"中的前5行代码利用C语言的宏定义将__declspec(dllexport) 替换为DLLIMPORT (在编译阶段遇到DLLIMPORT会替换为__declspec(dllexport) ,方便于程序的编写)
__declspec(dllexport)的作用为将一个函数声名为导出函数,就是说这个函数要被其他程序调用,即作为DLL的一个对外函数接口
extern “C” 修饰的变量和函数是按照C语言方式编译和连接的;
第7行声明有一个名字叫做“hello”的DLL对外接口函数,这个函数是按照C原因方式编译和连接的,这个函数没有参数返回数据类型为“char*”。

在"DllTest.cpp"文件中写入以下代码:
在这里插入图片描述
"DllTest.cpp"文件中第一行代码为导入"DllTest.h"头文件。
第3至6行代码对"DllTest.h"头文件中的“hello”函数进行实现。

编写完成!
点击Dev-C++中的"Compile"按钮对dll项目进行编译。
编译完成后工程项目文件夹中会有一个文件名称与项目名称相同的dll文件,这个文件就是我们需要的动态链接库文件。

编写Python代码如下:
在这里插入图片描述本栗子将dll文件与Python文件放至同一个文件夹中。
Python代码中第6行为变量lib导入编写好的dll。
第7行为变量h赋值dll文件中的hello函数
第8行设置h函数的返回值为C语言中的字符串指针类型
第9行打印这个函数的返回值。
注:本栗子中hello方法为无参函数,所以未传参数,若为有参函数则必须传递参数。

运行Python代码:
在这里插入图片描述
注:本操作系统中安装了Python2.7 和Python3.7 为Python3.7配置为Python3,读者需根据自己的配置运行Python命令。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值