目錄:
1.對于動態(tài)庫.dll文件的認識
2.制作編寫動態(tài)庫.dll文件
3.在python里ctypes模塊調(diào)用動態(tài).dll文件
1.引言:
曾經(jīng)我在感慨,作為小白的我条摸,python語言绝编,所謂的膠水語言炸枣,對于新手也只是個傳說呵曹,作為從C語言入門的我,感覺C語言毫無用武之地,它的優(yōu)勢(運行速度)遠遠沒有發(fā)揮俄精,幻想著有一天,能夠用簡潔的python語言調(diào)用運行速度占優(yōu)的C語言榕堰。而今天用python開發(fā)的一個小項目竖慧,不得不用到C語言了,是時候見證編程之美了。遂寫下這篇,以備后用圾旨,也一同分享給大家踱讨。
其實沒什么復(fù)雜的,看下面操作碳胳,希望給和我有同樣經(jīng)歷的人勇蝙,有所幫助。
2.總路線方針:
(一)對于動態(tài)庫.dll文件的認識:
1.1概述:
DLL(Dynamic Link Library)文件為動態(tài)鏈接庫文件挨约,又稱“應(yīng)用程序拓展”味混,是軟件文件類型。在Windows中诫惭,許多應(yīng)用程序并不是一個完整的可執(zhí)行文件翁锡,它們被分割成一些相對獨立的動態(tài)鏈接庫,即DLL文件夕土,放置于系統(tǒng)中馆衔。當(dāng)我們執(zhí)行某一個程序時,相應(yīng)的DLL文件就會被調(diào)用怨绣。一個應(yīng)用程序可使用多個DLL文件角溃,一個DLL文件也可能被不同的應(yīng)用程序使用,這樣的DLL文件被稱為共享DLL文件
1.2作用:
在這里起到從Python語言調(diào)用C語言的橋梁篮撑。其他用途還有很多减细。
1.3可參考下網(wǎng)址:
(1) C語言dll文件的說明以及生成、使用方法
(2)百度百科
(二)制作編寫動態(tài)庫.dll文件
2.1
(1)工具環(huán)境:vs2013
(2)新建項目:
(3)選擇win32的控制臺程序
(4)點擊下一步
(5)選擇DLL的空項目
(6)添加.c文件:
(7)選cpp文件的后綴名用.c
(8)編寫C文件(并以函數(shù)封裝好功能)
__declspec(dllexport)的作用赢笨,它就是為了省掉在DEF文件中手工定義導(dǎo)出哪些函數(shù)的一個方法.
dllexport 是在這些類未蝌、函數(shù)以及數(shù)據(jù)的申明的時候使用,用來表明這些東西可以被外部函數(shù)使用茧妒,即(dllexport)是把DLL中的相關(guān)代碼(類萧吠,函數(shù),數(shù)據(jù))暴露出來為其他應(yīng)用程序使用桐筏。使用了(dllexport)關(guān)鍵字纸型,相當(dāng)于聲明了緊接在(dllexport)關(guān)鍵字后面的相關(guān)內(nèi)容是可以為其他程序使用的。
(9)編譯生成.dll文件
(10)查看生成的結(jié)果(在該項目下的Debug文件夾下)
2.2參考網(wǎng)站:
(三)在python調(diào)用動態(tài).dll文件
3.1把生成的.dll文件復(fù)制到你的python項目下:
3.2使用標(biāo)準(zhǔn)模塊ctypes調(diào)用:
3.3參考網(wǎng)站:
本小節(jié)結(jié)束梅忌!
我是張一根绊袋,一個機械專業(yè)的大學(xué)生,一個在讀本科的計算機愛好者铸鹰,期盼和你一起交流計算機的知識,讓我們在這個大時代里一起進步皂岔。