Python運(yùn)行DLL文件的方法
什么是DLL文件?
DLL文件為動(dòng)態(tài)鏈接庫(kù)(英語(yǔ): Dynamic-link library, 縮寫(xiě)為DLL)
它是微軟公司在微軟視窗操作系統(tǒng)中實(shí)現(xiàn)共享函數(shù)庫(kù)概念的一種實(shí)現(xiàn)方式
先來(lái)闡述一下DLL(Dynamic Linkable Library)的概念,你可以簡(jiǎn)單的把DLL看成一種倉(cāng)庫(kù),它提供給你一些可以直接拿來(lái)用的變量、函數(shù)或類。在倉(cāng)庫(kù)的發(fā)展史上經(jīng)歷了“無(wú)庫(kù)-靜態(tài)鏈接庫(kù)-動(dòng)態(tài)鏈接庫(kù)”的時(shí)代。靜態(tài)鏈接庫(kù)與動(dòng)態(tài)鏈接庫(kù)都是共享代碼的方式,如果采用靜態(tài)鏈接庫(kù),則無(wú)論你愿不愿意,lib中的指令都被直接包含在最終生成的EXE文件中了。但是若使用DLL,該DLL不必被包含在最終EXE文件中,EXE文件執(zhí)行時(shí)可以“動(dòng)態(tài)”地引用和卸載這個(gè)與EXE獨(dú)立的DLL文件。靜態(tài)鏈接庫(kù)和動(dòng)態(tài)鏈接庫(kù)的另外一個(gè)區(qū)別在于靜態(tài)鏈接庫(kù)中不能再包含其他的動(dòng)態(tài)鏈接庫(kù)或者靜態(tài)庫(kù),而在動(dòng)態(tài)鏈接庫(kù)中還可以再包含其他的動(dòng)態(tài)或靜態(tài)鏈接庫(kù)。
用Python執(zhí)行DLL文件:
from ctypes import cdll def run_dll(dll_path, execute_function): """ 執(zhí)行DLL文件內(nèi)部指定的函數(shù) :param dll_path: DLL文件的所在路徑 :param execute_function: DLL文件內(nèi)部要被執(zhí)行的函數(shù)名 :return: """ dll_object = cdll.LoadLibrary(dll_path) # 實(shí)例化DLL對(duì)象 eval('dll_object.{}()'.format(execute_function)) # 調(diào)用DLL文件內(nèi)的指定程序 if __name__ == '__main__': path = r'C:\Users\evaliu\Desktop\example.dll' run_dll(dll_path=path, execute_function='communication_test')
總結(jié)
以上所述是小編給大家介紹的Python運(yùn)行DLL文件的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
python函數(shù)裝飾器之帶參數(shù)的函數(shù)和帶參數(shù)的裝飾器用法示例
這篇文章主要介紹了python函數(shù)裝飾器之帶參數(shù)的函數(shù)和帶參數(shù)的裝飾器用法,結(jié)合實(shí)例形式分析了Python函數(shù)裝飾器中函數(shù)帶多個(gè)參數(shù)以及裝飾器帶有多個(gè)參數(shù)的具體原理與實(shí)現(xiàn)方法,需要的朋友可以參考下2019-11-11詳解django的serializer序列化model幾種方法
序列化是將對(duì)象狀態(tài)轉(zhuǎn)換為可保持或傳輸?shù)母袷降倪^(guò)程。這篇文章主要介紹了詳解django的serializer序列化model幾種方法。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10Python Pygame實(shí)戰(zhàn)之飛機(jī)大戰(zhàn)的實(shí)現(xiàn)
飛機(jī)大戰(zhàn)想必是很多人童年時(shí)期的經(jīng)典游戲,這篇文章主要給大家介紹了關(guān)于如何利用python中的Pygame模塊寫(xiě)一個(gè)簡(jiǎn)單的飛機(jī)大戰(zhàn)小游戲的相關(guān)資料,需要的朋友可以參考下2022-03-03Pandas DataFrame實(shí)現(xiàn)任意位置插入一列或一行
Pandas是Python中最流行的數(shù)據(jù)處理和分析庫(kù)之一,在數(shù)據(jù)分析過(guò)程中,有時(shí)候需要在Dataframe中插入新的數(shù)據(jù)列,本文主要介紹了Pandas DataFrame實(shí)現(xiàn)任意位置插入一列或一行,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08python實(shí)現(xiàn)選取或刪除指定列包含指定內(nèi)容的行
這篇文章主要介紹了python實(shí)現(xiàn)選取或刪除指定列包含指定內(nèi)容的行,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02Python 實(shí)現(xiàn)網(wǎng)課實(shí)時(shí)監(jiān)控自動(dòng)簽到、打卡功能
這篇文章主要介紹了Python實(shí)現(xiàn)網(wǎng)課實(shí)時(shí)監(jiān)控自動(dòng)簽到,打卡功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03linux環(huán)境部署清華大學(xué)大模型最新版 chatglm2-6b 圖文教程
這篇文章主要介紹了linux環(huán)境部署清華大學(xué)大模型最新版 chatglm2-6b ,結(jié)合實(shí)例形式詳細(xì)分析了Linux環(huán)境下chatglm2-6b部署相關(guān)操作步驟與注意事項(xiàng),需要的朋友可以參考下2023-07-07在linux系統(tǒng)中安裝python3.8.1?并卸載?python3.6.2?更新python3引導(dǎo)到3.8.1的
這篇文章主要介紹了如何在linux系統(tǒng)中安裝python3.8.1?并卸載?python3.6.2?更新python3引導(dǎo)到3.8.1,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-11-11