python(73) 引用.dll文件并调用函数
一. .dll文件生成
c++代码 .cpp文件
#include <iostream>// 导出函数声明,供外部调用
extern "C" __declspec(dllexport) int add(int a, int b);
extern "C" __declspec(dllexport) void greet();// 函数实现
int add(int a, int b) {return a + b;
}void greet() {std::cout << "Hello from MyDLL!" << std::endl;
}
windows环境下使用命令生成.dll
g++ -shared -o demo.dll demo.cpp -Wl,--out-implib=libdemo.a -static-libstdc++
命令参数说明: -shared:指定生成动态链接库(.dll)-o mydll.dll:指定输出的 DLL 文件名 -Wl,--out-implib=libmydll.a:生成导入库(.a 文件),供其他程序链接时使用执行成功后,会生成三个文件: mydll.dll:动态链接库本体 libmydll.a:MinGW 格式的导入库 mydll.exp:导出符号文件(辅助文件)libstdc++ -static-libstdc++:静态链接 C++ 标准库,将std::cout等实现打包到你的 DLL 中
二. python引用.dll文件
from ctypes import *
pdll = CDLL("E:\\project\\dll_demo\\demo.dll")
c = pdll.add(1,2)
print(c)pdll.greet()
python调用结果
3
Hello from MyDLL!