# 使用 ctypes 调用 C++ 编写的动态链接库 (DLL)
# 首先,假设我们有一个简单的 C++ 函数,它被编译成一个 DLL 文件(在 Windows 上)或共享对象文件(在 Linux 上)。
# 例如,C++ 代码如下:
# // example.cpp
# extern "C" __declspec(dllexport) int add(int a, int b) {
# return a + b;
# }
# 然后我们将这个 C++ 代码编译成一个名为 example.dll 的动态链接库。
import ctypes
# 加载动态链接库
dll = ctypes.CDLL('./example.dll')
# 定义函数的参数类型和返回类型
dll.add.argtypes = (ctypes.c_int, ctypes.c_int)
dll.add.restype = ctypes.c_int
# 调用 C++ 函数
result = dll.add(3, 4)
print(f"Result of add(3, 4): {result}")
C++ 代码:首先,我们编写了一个简单的 C++ 函数 add,它接受两个整数并返回它们的和。为了确保 C++ 函数可以在 Python 中调用,我们使用了 extern "C" 来防止名称修饰,并使用 __declspec(dllexport) 来导出函数(仅适用于 Windows)。对于 Linux,可以使用 -fPIC 和 -shared 标志来编译为共享对象文件。
Python 代码:
ctypes 模块加载动态链接库(DLL 或 SO 文件)。CDLL 类加载 DLL 文件。argtypes) 和返回类型 (restype),以确保类型匹配。通过这种方式,你可以轻松地从 Python 调用 C++ 编写的函数。
上一篇:python base64转图片
下一篇:python快速编程入门
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站