python 调用dll动态库案例
时间: 2024-09-23 17:08:19 浏览: 52
在Python中调用DLL(Dynamic Link Library)动态链接库是一种常见的方式,特别是在需要利用Windows系统已经存在的功能或第三方编写的C/C++代码时。这里是一个简单的例子,展示如何使用`ctypes`库来调用DLL:
首先,假设有一个名为`mathlib.dll`的数学计算函数库,包含一个函数`AddNumbers`接受两个整数并返回它们的和。以下是调用这个函数的步骤:
```python
import ctypes
# 定义库的路径和函数原型
mathlib_path = r"C:\path\to\mathlib.dll"
AddNumbers_func = ctypes.windll.mathlib.AddNumbers
# 设置函数输入和输出参数类型
AddNumbers_func.argtypes = [ctypes.c_int, ctypes.c_int]
AddNumbers_func.restype = ctypes.c_int
# 调用函数示例
num1 = 5
num2 = 10
result = AddNumbers_func(num1, num2)
print(f"The sum is: {result}")
```
在这个例子中:
- `ctypes.windll`用于加载默认全局路径下的动态链接库(这里是Windows平台)。
- `AddNumbers_func = ctypes.windll.mathlib.AddNumbers`分配了一个函数指针,指向DLL中的`AddNumbers`函数。
- `argtypes`设置了函数的输入参数类型(在这里是两个整数),`restype`设置返回值类型(在这里是整数)。
- 最后,我们调用函数并将结果存储在`result`变量中。
阅读全文