Python调用c++生成的dll
- 1.简单例子
-
- [1.1 vs2019 c++生成dll](#1.1 vs2019 c++生成dll)
- [1.2 Python端调用](#1.2 Python端调用)
- 2.调用c++类生成的dll
-
- [2.1 vs cpp端生成dll](#2.1 vs cpp端生成dll)
- [2.2 Python端调用](#2.2 Python端调用)
- 参考文献
1.简单例子
1.1 vs2019 c++生成dll
- 项目中添加add.cpp文件
cpp
extern "C" int __declspec(dllexport) add(int x, int y)
{
return x + y;
}
- 配置属性
- 生成dll
点击生成解决方案
,到输出目录文件夹查看add.dll
文件是否正常生成。
1.2 Python端调用
python
from ctypes import*
import sys
try:
mydll = cdll.LoadLibrary(r"add.dll")
except:
sys.exit("No shared DLL/SO found")
print(mydll.add(3,4))
#7
2.调用c++类生成的dll
2.1 vs cpp端生成dll
- 添加myDll.cpp文件
cpp
#include<iostream>
using namespace std;
class myDll
{
public:
void helloDll()
{
cout << "hello dll" << endl;
};
};
extern "C"
{
myDll obj;
extern "C" _declspec(dllexport) void helloDll()
{
return obj.helloDll();
}
}
- 配置属性
dll名设置为myDll
.
- 生成dll文件
参考第一个例子。
2.2 Python端调用
python
from ctypes import*
import sys
try:
mydll = cdll.LoadLibrary("myDll.dll")
except:
sys.exit("No shared DLL/SO found")
mydll.helloDll()
#hello dll
测试通过!