当前位置: 首页 > news >正文

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!

http://www.dtcms.com/a/395400.html

相关文章:

  • Chrome 学习小记5——demo:(动态壁纸基础)
  • 手写 Android Dex VMP 壳:自定义虚拟机 + 指令解释执行全流程
  • 【Netty】创建一个 SSL 处理器,实现客户端与服务器之间的安全通信
  • 13 Python数据结构与算法
  • 爱:宇宙的心跳
  • Python字节数据写入文本文件完全指南:从基础到高级实战
  • 零基础Windows10安装LLVM
  • selenium三种等待方式详解
  • Leetcode总结速记
  • 手写 Android Dex VMP 壳:指令流 AES 加密 + 动态加载全流程
  • 视频融合平台EasyCVR国标GB28181视频诊断功能详解与实践
  • ORACLE adg 备库也能单独提取AWR报告
  • Angular由一个bug说起之十九:Angular 实现可拓展 Dropdown 组件
  • Kafka核心架构与高效消息处理指南
  • flink1.18配置多个上游source和下游sink
  • 快速查看自己电脑的ip地址:一个命令见本机私网ip,一步查询本地网络公网ip,附内网ip让外网访问的通用方法
  • 插件化(Plugin)设计模式——Python 的动态导入和参数解析库 argparse 的高级用法
  • 【JavaSE】【网络原理】UDP和TCP原理
  • 高防IP真的能抵御DDoS攻击吗?
  • 93. 复原 IP 地址
  • 智能排班系统,促进人岗匹配提升人效
  • PostgreSQL介绍和PostgreSQL包安装
  • 分享“泰迪杯”数据挖掘挑战赛全新升级——赛题精准对标,搭建 “白名单” 赛事进阶通道
  • 对接文档:快递鸟取件码API,实现物流末端服务自动化
  • GIS学习:GIS认知与开发初步入门
  • 9. NVME与SSD之间的通信
  • Navicat连接PostgreSQL报错:authentication method 10 not supported
  • Diffusion 模型解读
  • 【寰宇光锥舟】 数学模型讨论
  • Further inference in the multiple linear regression model