C++ 调用 python 脚本的动态链接库(附项目)

(0)摘要

# 之前在实习的时候,公司要求我做跨语言编程(py 和 C/C++),本人也积累了一些经验,也感谢学校导师们给我机会提高对跨语言编程的认识。不论是 c++ 调 py ,还是 py 调 c++ ,前者可以避免代码重写,直接使用现成的网络模型;后者能够提高程序的执行效率,一般部署的时候使用。这里我们写一篇 c++ 调用 python 脚本的笔记。同时给出动态链接库和说明文档,希望可以在今后的项目中得到应用。


# playground:  GitHub - night-handsomer/code-for-playing: just for fun

(1)首先是 python 脚本的代码

# (1)以下代码其实就是使用 opencv 以灰度的格式打开图片。 传参 path 是图片的地址。


(2)C++ 部分代码

# (1)void TestQt2(string module, string func, string path) 就是接口函数了,我们暴露出去调用的,module 是文件名称,func 是函数名称,path 是图片的路径。


# (2)调用的例子:


#

(3)动态链接库

# 直接看我的笔记就可以了~~~


# 直通车:c++配置 python 链接,和生成动态链接库(dll)_惜年_night的博客-CSDN博客

(4)最后看看结果还有一些说明

# (1)结果展示:


#(2)这里有个 bug,如果是 QT 和 Py QT 的调用,是会报错的,解决方法是优化 python 脚本。还有,我们使用的环境最好是单独的 python,而且是 base 环境,不能用虚拟环境!!同时,我们的动态库是使用的 python3.9 封装的,如果使用 python3.8 的话,测试会报错的(形如缺少 python39.dll 文件)


# (3)其实跨语言编程现成的有 pybind11 和 boost::python,好用,但是二者要么学习成本高或者配置环境的成本高,只能说看场景吧。

(5)参考文献

Py_BuildValue()函数_小魔王降临的博客-CSDN博客_py_buildvalue python

# 哔哩哔哩大学 

Visual Studio 2019-编写C++动态链接库_哔哩哔哩_bilibili

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值