python引用.dll文件并调用函数实例代码

 更新时间:2025年09月23日 09:13:36   作者:python开发笔记  
Python作为一种强大且灵活的编程语言,被广泛用于开发和集成各种软件和库,然而有时候需要调用DLL(动态链接库)文件,这篇文章主要介绍了python引用.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!

总结

到此这篇关于python引用.dll文件并调用函数的文章就介绍到这了,更多相关python引用.dll文件调用函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • windows python安装mathutils库出现错误的解决过程

    windows python安装mathutils库出现错误的解决过程

    在Windows 11上安装mathutils库时遇到“无法解析外部符号PyModule_AddType”错误,通过查看mathutils.c文件,注释掉PyModule_AddType并改为PyModule_AddObject后,重新安装成功并可以正常使用
    2026-01-01
  • Python字符串对齐方法使用(ljust()、rjust()和center())

    Python字符串对齐方法使用(ljust()、rjust()和center())

    这篇文章主要介绍了Python字符串对齐方法使用(ljust()、rjust()和center()),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 用python完成一个分布式事务TCC

    用python完成一个分布式事务TCC

    这篇文章主要介绍了用python完成一个分布式事务TCC,文章里我们介绍了TCC的理论知识,也通过一个例子,完整给出了编写一个TCC事务的过程,涵盖了正常成功完成,以及成功回滚的情况,需要的朋友可以参考一下文章的具体内容
    2021-10-10
  • 解决使用Pycharm导入conda environment时找不到python.exe

    解决使用Pycharm导入conda environment时找不到python.exe

    今天在使用conda创建环境之后,使用pycham发现找到自己的python环境但是找不到环境对应的python.exe,这篇文章主要给大家介绍了关于如何解决使用Pycharm导入conda environment时找不到python.exe的相关资料,需要的朋友可以参考下
    2023-10-10
  • 在 Python 中创建DataFrame的方法

    在 Python 中创建DataFrame的方法

    这篇文章主要介绍了教你如何在 Python 中创建DataFrame,我们将学习以多种方式创建DataFrame,DataFrame是数据的二维集合,是一种数据结构,其中数据以表格形式存储,更多相关资料需要的小伙伴可以参考一下
    2022-03-03
  • Pycharm卡顿,给Pycharm分配更多的内存方式

    Pycharm卡顿,给Pycharm分配更多的内存方式

    为PyCharm设置更多内存以提升运行速度,本文详细介绍了修改方法,并建议读者适当增加内存分配以获得更流畅的使用体验
    2026-05-05
  • 解决pytorch找不到shm.dll模块的问题

    解决pytorch找不到shm.dll模块的问题

    本文主要介绍了解决pytorch找不到shm.dll模块的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-04-04
  • Python可视化绘制图表的教程详解

    Python可视化绘制图表的教程详解

    python 有许多可视化工具,但本文主要为大家介绍一下Matplotlib。Matplotlib是一种2D的绘图库,它可以支持硬拷贝和跨系统的交互,感兴趣的可以了解一下
    2022-10-10
  • 如何从Python字符串中删除最后一个分号或者逗号

    如何从Python字符串中删除最后一个分号或者逗号

    这篇文章主要介绍了从 Python 中的字符串中删除最后一个分号或者逗号的两种方法,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • Python语言中的重要函数对象用法小结

    Python语言中的重要函数对象用法小结

    Python作为一种强大的编程语言,提供了多种高级函数对象,如lambda匿名函数、map()、reduce()函数,以及迭代器和生成器的使用,本文给大家介绍Python语言中的重要函数对象用法,感兴趣的朋友跟随小编一起看看吧
    2024-09-09

最新评论