Python運行DLL文件

什麼是DLL文件?

DLL文件爲動態鏈接庫(英語: Dynamic-link library, 縮寫爲DLL)
它是微軟公司在微軟視窗操作系統中實現共享函數庫概念的一種實現方式

先來闡述一下DLL(Dynamic Linkable Library)的概念,你可以簡單的把DLL看成一種倉庫,它提供給你一些可以直接拿來用的變量、函數或類。在倉庫的發展史上經歷了“無庫-靜態鏈接庫-動態鏈接庫”的時代。靜態鏈接庫與動態鏈接庫都是共享代碼的方式,如果採用靜態鏈接庫,則無論你願不願意,lib中的指令都被直接包含在最終生成的EXE文件中了。但是若使用DLL,該DLL不必被包含在最終EXE文件中,EXE文件執行時可以“動態”地引用和卸載這個與EXE獨立的DLL文件。靜態鏈接庫和動態鏈接庫的另外一個區別在於靜態鏈接庫中不能再包含其他的動態鏈接庫或者靜態庫,而在動態鏈接庫中還可以再包含其他的動態或靜態鏈接庫。

用Python執行DLL文件:

"""
DLL文件爲動態鏈接庫(英語: Dynamic-link library, 縮寫爲DLL)
它是微軟公司在微軟視窗操作系統中實現共享函數庫概念的一種實現方式
"""
from ctypes import cdll

__author__ = 'Evan'


def run_dll(dll_path, execute_function):
    """
    執行DLL文件
    :param dll_path: DLL文件的所在路徑
    :param execute_function: DLL文件內部要被執行的函數名
    :return:
    """
    dll_object = cdll.LoadLibrary(dll_path)  # 實例化DLL對象
    eval('dll_object.{}()'.format(execute_function))  # 調用DLL文件內的指定程序


if __name__ == '__main__':
    path = r'C:\Users\evaliu\Desktop\example.dll'
    run_dll(dll_path=path, execute_function='communication_test')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章