使用python调用DLL文件

使用python调用DLL文件

最近要用python调用dll,在网上找了很多帖子,通常都说能用,但是自己去试的时候却千难万难,思索思索决定自己也写一下;希望能给各位以帮助。

环境

使用环境为pycharm2021,python3.7,vs2015,C++

调用方法

生成dll文件

生成DLL的详细步骤可以看我前一篇帖子,此处只介绍在有了dll后如何进行调用。
首先用VS2015打开我之前生成的项目,我这个项目写的比较粗糙,也没有类之类的东西。
后期熟练后再来进行更改。此处仅以此不成熟代码为例:
只需要在头文件中定义处加上extern “C” ,如下图,注意空格。

在这里插入图片描述
后面的_declspec好像也是关键,但目前还不太懂。
更改此处后,重新点生成>>生成解决方案,得到新的dll文件。

在python中加载

在项目文件夹中找到生成的dll文件,将其拉到python项目文件夹下。

在这里插入图片描述
test3.py是我将要使用的python文件,test_dll.dll为我生成的dll文件。
py代码如下

from ctypes import *
dll = cdll.LoadLibrary("test_dll")
print("add:", dll.myAdd(1, 2))
print("Max:", dll.myMax(1, 2))
print("main:", dll.main())

运行结果如下
在这里插入图片描述
可以看到,仅在.h文件中声明的函数可调用,上诉代码去掉最后一行则无报错。
我这里的经验是,函数定义在cpp中,但要在.h中使用如上方法后才能被调用,但也有博主只用cpp生成的dll也能被调用,当中声明亦与我不同,我会把他的连接放在最后,大家可以相比较一下。
参考如下
链接: b站up的方法.
链接: python调用C++编译生成的DLL动态链接库.
链接: Python调用windows下DLL详解.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值