将C++函数编译为动态链接库并用python调用

环境:win10 | vs2019 | python3 | ctype

① 创建 dll 项目

② 创建自己的头文件和源文件,自动生成的不用管(这样后面会有一个报错,改下设置就 ok l)

③ 需要导出让 python 调用的函数加一些关键字声明,其余的函数不用管,加的原因网上很多,不多说
将C/C++编译为动态链接库并供python调用其函数_潇洒过路客的博客-CSDN博客_编译成动态链接库以便python环境下可以被调用

④ 运行后,会报错,这个报错正常,生成成功就ok了
这里会报错 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include “pch.h“
属性-预编译头-不使用预编译头
使用vs2019用c++创建dll库_xujianjun229的博客-CSDN博客_vs2019创建c++dll

运行后的界面

⑤ 我用的release ,所以生成的 dll 在release 里面,调用的库不同这里的dll数量也不同

⑥ 把 Dll1.dll 以及 他依赖的其他 dll 一起放到 python 脚本的同级目录(可以把release文件夹所有dll复制过去),不然可能会报错 找不到某个 dll

⑦最好在 c++ 设置一下输出,看一下c++接到的 数据是否正确
我这里需要传几个路径,所有用了一个结构体。注意c++ 和 python 之间的数据转换问题
python 使用ctypes调用C/C++ dll - 我来乔23 - 博客园 (cnblogs.com)

地址不对会报错: OSError: [WinError -529697949] Windows Error 0xe06d7363

⑧整个过程各种踩坑
留个坑:我这里的函数没有返回值,当我试着返回一张图时,会报错:
OSError: exception: access violation reading 0xFFFFFFFFFFFFFFFF
有说是内存的问题,不知道怎么破???

C++编译为动态链接库并用python调用相关推荐

  1. python 调用golang_python调用golang编写的动态链接库

    楔子 我们都知道python的效率很低,但是好在可以和C语言无缝结合,C语言写好动态链接库之后再让python去调用简直不要太方便.但是使用C编写动态链接库也不是件容易的事情,于是笔者想到了go,go ...

  2. 关于win7下编译pyx文件生成pyd文件供Python调用

    在运行python程序的时候,会发现有些模块不是用Python语言编写的,而是用C/C++编写的,主要是考虑到C/C++编写的模块相对Python脚本语言编写的模块执行速度更快.那么在调用这些由C/C ...

  3. python调用c++动态库_Python调用C/C++动态链接库的方法

    本文以实例讲解了Python调用C/C++ DLL动态链接库的方法,具体示例如下: 示例一: 首先,在创建一个DLL工程(本例创建环境为VS 2005),头文件: //hello.h #ifdef E ...

  4. python调用.so动态链接库,运行时报错 liblapack.so.3: undefined symbol: icamin_k

    目录 1. 报错 2. 原因 3. 尝试 4. 解决 1. 报错 用python调用动态链接库,编译完全没有问题,顺利生成.so文件,但是运行python调用该库时,发生报错. 报错信息如下: Tra ...

  5. Python 调用动态链接库

    Python 调用动态链接库 ctypes是Python调用c的动态链接库的一个内置模块. 通过 CMake 构建动态链接库 项目结构 ├── CMakeLists.txt # CMake 构建配置文 ...

  6. Linux平台下动态链接库.so转换成windiws平台下.dll文件并使用python调用

    问题起因: 在运行PointNet的可视化程序时,作者只提供了linux平台下的动态链接库程序源码,自己的windows平台下无法调用.发现是动态链接库的文件格式不对,遂学习如何将.so文件转换成.d ...

  7. Python调用海康SDK进行车牌识别(动态链接库的方法—不通过swig)

    由于公司项目需要,要通过Python取得海康相机识别到的车牌号,由于目前在办公室,无法进行实际测试,所以通过网络触发抓拍的方式来进行. 首先要下载海康官网的SDK示例,最开始从网上查找资料是通过swi ...

  8. Windows使用MSVC,命令行编译,链接64位dll,Python调用

    文章目录 代码 编译 链接 Python调用 前一篇博客: Windows下使用Visual Studio自带的MSVC,命令行编译C/C++程序 代码 mylib.h代码如下: #ifndef MY ...

  9. python调用动态链接库传送protobuf数据。

    什么是protobuf protobuf是Google提供的一个开源序列化框架,类似于XML,JSON这样的数据表示语言,其最大的特点是基于二进制,因此比传统的XML表示高效短小得多.开发者定义类似于 ...

最新文章

  1. 3.数据类型,运算符,表达式
  2. C# winform combobox默认选中项方法
  3. python做软件-用python做个翻译小软件吧~
  4. 利用JFreeChart生成简单柱状图(Java)
  5. mongodb配置windows服务启动
  6. 浅淡HTML5移动Web开发
  7. 英特尔多核联合实验室授牌仪式
  8. 前端关系图谱插件_智游告诉你,前端开发应该学什么?
  9. python中123+5.0的执行结果_python实战笔记(一)
  10. 发外链网站服务器瘫痪,哪些操作可以导致网站接入瘫痪 - 搜外SEO问答
  11. 三级数据库笔记(完整)
  12. 图像传感器(智能相机技术)
  13. android 工具类toast,Android Toast工具类
  14. mma7660(gsensor)的hwmon驱动
  15. android隐藏layout,LinearLayout的隐藏与显示
  16. Excel 用函数自定义验证数据的有效性
  17. [译]如何打造以人为本的移动游戏
  18. 用链接法实现散列表构造和查找
  19. QT:表格操作QTableView详解
  20. 为什么要关心分布式事务

热门文章

  1. python实现数字反转_python 数字怎么反转
  2. rm -rf /* 数据恢复记录
  3. miniGUI源码分析:消息机制
  4. proguard.cfg 配置文件
  5. 笔记-微信订阅号开发
  6. PC版微信如何输入换行符
  7. php获取手机号码6,php随机生成姓名,手机号,6位数
  8. 《沉思录》读书精摘——对伦理学的古典思考
  9. Method threw ‘java.lang.IllegalStateException‘ exception. Cannot evaluate org.apache.hadoop.mapreduc
  10. win10 设备管理器显示便捷设备