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 转载](https://blog.51cto.com/u_16099237/6548050)

相关推荐
Dxy12393102162 分钟前
Python的正则表达式入门:从小白到能手
服务器·python·正则表达式
buyue__2 分钟前
C++实现数据结构——队列
数据结构·c++
NZT-484 分钟前
C++基础笔记(二)队列deque,queue和堆priority_queue
java·c++·笔记
艾上编程9 分钟前
第三章——爬虫工具场景之Python爬虫实战:行业资讯爬取与存储,抢占信息先机
开发语言·爬虫·python
Pyeako10 分钟前
网络爬虫相关操作--selenium库(超详细版)
爬虫·python·selenium
dagouaofei13 分钟前
全面整理6款文档生成PPT工具,PDF转PPT不再难
python·pdf·powerpoint
β添砖java16 分钟前
python第一阶段第10章
开发语言·python
玉树临风ives34 分钟前
atcoder ABC436 题解
c++·算法·leetcode·atcoder·信息学奥赛
伊玛目的门徒36 分钟前
HTTP SSE 流式响应处理:调用腾讯 智能应用开发平台ADP智能体的 API
python·网络协议·http·腾讯智能体·adp·智能应用开发平台
fpcc36 分钟前
C++23中的自定义模块开发
c++·c++23