Python调用c++生成的dll

Python调用c++生成的dll

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

测试通过!

参考文献

1 python调用dll 结构体 python如何调用dll 转载

相关推荐
金銀銅鐵7 小时前
[Python] 扩展欧几里得算法
python·数学·算法
Duckdblab7 小时前
DuckDB 性能调优终极指南:打造闪电般的分析体验
python
带派擂总8 小时前
Python全栈开发精华版最全合集(包含各种面试题) Day24_异常和错误
python
金銀銅鐵11 小时前
n^5 和 n 的个位数是否总相等?
python·数学
aqi0014 小时前
15天学会AI应用开发(九)利用Chroma持久化向量数据
人工智能·python·大模型·ai编程·ai应用
金銀銅鐵14 小时前
借助 Pygame 探索最大公约数的规律
python·数学·游戏
郝学胜_神的一滴15 小时前
CMake 30:循环语法全解|foreach_while双循环精讲、迭代技巧与实战避坑指南
c++·cmake
ServBay1 天前
9 个 Python 第三方库推荐,不用 AI 都好像多出一个团队
后端·python
用户8356290780511 天前
如何使用 Python 添加和管理 Excel 批注(完整示例)
后端·python