python调用c语言的库(动态库DLL)

本文介绍了如何在Python中调用C语言编写的动态库DLL,包括导入库的方法,解决参数类型匹配问题,特别是针对C类型的宽字符和指针的处理,通过ctypes库实现Python和C数据类型的对应转换。
摘要由CSDN通过智能技术生成

@真开心啊,聚精会神找一天错误没找到,看个视频摸摸鱼就找到了

首先要明确的怎么导入

项目所需,需要使用pyqt写界面,然后里有涉及电机和摄像头的调用,底层驱动是c语言写好了,并导出了动态库dll文件。

导入方法

可以使用ctypescffi方法导入,不过好像资料都不多
我用的是ctypes
在python代码的头部导入库

import ctypes
from ctypes import *
AMC = ctypes.cdll.LoadLibrary
lib_amc = AMC("./driver/amc4030/AMC4030.dll") #该文件与python在同一目录下
print("add AMC4030.dll succeed")

一般这样就把动态链接库导入进去了。假设库里有一个函数,名字是

function(int a, int b)

然后开始调用库里的函数

lib_amc.function(1,2)

参数类型怎么匹配

上面这个都是很简单的导入和调用方法,但是我们主要出现的问题是参数类型不匹配。比如报错

TypeError: an integer is required (got type str

比如我dll库里有一个函数原型是

#define temp_SYSTEM 0
···
t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值