@真开心啊,聚精会神找一天错误没找到,看个视频摸摸鱼就找到了
首先要明确的怎么导入
项目所需,需要使用pyqt写界面,然后里有涉及电机和摄像头的调用,底层驱动是c语言写好了,并导出了动态库dll文件。
导入方法
可以使用ctypes
和cffi
方法导入,不过好像资料都不多
我用的是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