python(74) 调用dll文件
1. 加载
- 加载 DLL 文件:根据 DLL 的类型,使用
CDLL
、WinDLL
或OleDLL
来加载。CDLL
:使用 CDECL 调用约定,适用于大多数 C 编写的 DLL,函数返回值默认为int
类型。WinDLL
:使用 STDCALL 调用约定,常见于 Windows API,函数返回值默认为int
类型。OleDLL
:使用 STDCALL 调用约定,用于 OLE 自动化库,函数返回值默认为int
类型。
import ctypes# 加载DLL,这里假设DLL名为example.dll,使用CDLL调用约定
dll = ctypes.CDLL('example.dll')
2.调用
在 Python 的 ctypes
中,dll.add
和 dll['add']
两种写法效果是相同的,都是用于获取 DLL 中名为 add
的函数对象。
这两种写法的本质是一致的,都是通过属性访问(.
语法)或字典键访问([]
语法)来获取 DLL 中的导出函数。具体来说:
dll.add
是属性访问方式,更简洁直观,适合函数名符合 Python 标识符规则(如不包含特殊字符、不与关键字冲突)的情况。dll['add']
是字典键访问方式,更灵活,尤其适合函数名包含特殊字符(如 C++ 名字修饰后的?add@@YAHHH@Z
)或与 Python 关键字冲突的情况。