1.1python调用C语言程序之调用dll动态库(一):

返回总目录

目录:

1.对于动态库.dll文件的认识

2.制作编写动态库.dll文件

3.在python里ctypes模块调用动态.dll文件

1.引言:

曾经我在感慨,作为小白的我,python语言,所谓的胶水语言,对于新手也只是个传说,作为从C语言入门的我,感觉C语言毫无用武之地,它的优势(运行速度)远远没有发挥,幻想着有一天,能够用简洁的python语言调用运行速度占优的C语言。而今天用python开发的一个小项目,不得不用到C语言了,是时候见证编程之美了。遂写下这篇,以备后用,也一同分享给大家。

其实没什么复杂的,看下面操作,希望给和我有同样经历的人,有所帮助。

2.总路线方针:

1.1python调用C语言程序之调用dll动态库(一):_第1张图片
c_to_python.png

(一)对于动态库.dll文件的认识:

1.1概述:

DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件

1.2作用:

在这里起到从Python语言调用C语言的桥梁。其他用途还有很多。

1.3可参考下网址:

(1) C语言dll文件的说明以及生成、使用方法
(2)百度百科

(二)制作编写动态库.dll文件

2.1

(1)工具环境:vs2013

01坏境.png

(2)新建项目:

1.1python调用C语言程序之调用dll动态库(一):_第2张图片
02新建项目.png

(3)选择win32的控制台程序

1.1python调用C语言程序之调用dll动态库(一):_第3张图片
02选择Win32控制台应用程序.png

(4)点击下一步

1.1python调用C语言程序之调用dll动态库(一):_第4张图片
03下一步.png

(5)选择DLL的空项目

1.1python调用C语言程序之调用dll动态库(一):_第5张图片
04选择dll空项目.png

(6)添加.c文件:

1.1python调用C语言程序之调用dll动态库(一):_第6张图片
05添加.c文件.png

(7)选cpp文件的后缀名用.c

1.1python调用C语言程序之调用dll动态库(一):_第7张图片
06选择.c文件.png

(8)编写C文件(并以函数封装好功能)

1.1python调用C语言程序之调用dll动态库(一):_第8张图片
07编写.c文件.png

__declspec(dllexport)的作用,它就是为了省掉在DEF文件中手工定义导出哪些函数的一个方法.
dllexport 是在这些类、函数以及数据的申明的时候使用,用来表明这些东西可以被外部函数使用,即(dllexport)是把DLL中的相关代码(类,函数,数据)暴露出来为其他应用程序使用。使用了(dllexport)关键字,相当于声明了紧接在(dllexport)关键字后面的相关内容是可以为其他程序使用的。

(9)编译生成.dll文件

1.1python调用C语言程序之调用dll动态库(一):_第9张图片
08编译生成.dll文件.png

(10)查看生成的结果(在该项目下的Debug文件夹下)

1.1python调用C语言程序之调用dll动态库(一):_第10张图片
09找到dll文件.png

2.2参考网站:

vs2013生成.dll文件

(三)在python调用动态.dll文件

3.1把生成的.dll文件复制到你的python项目下:


1.1python调用C语言程序之调用dll动态库(一):_第11张图片
10粘贴到项目的文件夹下.png

3.2使用标准模块ctypes调用:

1.1python调用C语言程序之调用dll动态库(一):_第12张图片
11调用成功.png

3.3参考网站:

Python调用C语言

本小节结束!

返回总目录

我是张一根,一个机械专业的大学生,一个在读本科的计算机爱好者,期盼和你一起交流计算机的知识,让我们在这个大时代里一起进步。

你可能感兴趣的:(1.1python调用C语言程序之调用dll动态库(一):)