目录:
1.对于动态库.dll文件的认识
2.制作编写动态库.dll文件
3.在python里ctypes模块调用动态.dll文件
1.引言:
曾经我在感慨,作为小白的我,python语言,所谓的胶水语言,对于新手也只是个传说,作为从C语言入门的我,感觉C语言毫无用武之地,它的优势(运行速度)远远没有发挥,幻想着有一天,能够用简洁的python语言调用运行速度占优的C语言。而今天用python开发的一个小项目,不得不用到C语言了,是时候见证编程之美了。遂写下这篇,以备后用,也一同分享给大家。
其实没什么复杂的,看下面操作,希望给和我有同样经历的人,有所帮助。
2.总路线方针:
(一)对于动态库.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
(2)新建项目:
(3)选择win32的控制台程序
(4)点击下一步
(5)选择DLL的空项目
(6)添加.c文件:
(7)选cpp文件的后缀名用.c
(8)编写C文件(并以函数封装好功能)
__declspec(dllexport)的作用,它就是为了省掉在DEF文件中手工定义导出哪些函数的一个方法.
dllexport 是在这些类、函数以及数据的申明的时候使用,用来表明这些东西可以被外部函数使用,即(dllexport)是把DLL中的相关代码(类,函数,数据)暴露出来为其他应用程序使用。使用了(dllexport)关键字,相当于声明了紧接在(dllexport)关键字后面的相关内容是可以为其他程序使用的。
(9)编译生成.dll文件
(10)查看生成的结果(在该项目下的Debug文件夹下)
2.2参考网站:
(三)在python调用动态.dll文件
3.1把生成的.dll文件复制到你的python项目下:
3.2使用标准模块ctypes调用:
3.3参考网站:
本小节结束!
我是张一根,一个机械专业的大学生,一个在读本科的计算机爱好者,期盼和你一起交流计算机的知识,让我们在这个大时代里一起进步。