python中可使用ctypes模塊調(diào)用dll文件中的庫函數(shù)。 例如一個(gè)dll文件“MyDll.dll”,其函數(shù)約定的調(diào)用方式為C調(diào)用(cdecl)方式,則Python中加載該dll文件的代碼如下: 若DLL函數(shù)的調(diào)用約定是標(biāo)準(zhǔn)調(diào)用約定(stdcall)方式,則DLL文件的加載代碼則改為: dll = WinDLL('MyDll.dll') 下面給出幾種不同類型的參數(shù)傳遞情況示例。 1、函數(shù)參數(shù)為數(shù)值情況 這是最簡單的情況,設(shè)C語言函數(shù)聲明如下: Python中調(diào)用方式為: 2、函數(shù)參數(shù)為指針情況 設(shè)C語言函數(shù)實(shí)現(xiàn)代碼如下: Python中調(diào)用方式為: 也可以為: 3、函數(shù)參數(shù)為字符串情況 設(shè)C語言函數(shù)實(shí)現(xiàn)代碼如下,其功能是對于輸入pStr1賦值為“StrIn”,對于輸出返回一個(gè)指向字符串常量“strOut”的指針: Python中調(diào)用方式為: 這兒只列舉了3種常見的參數(shù)傳遞情況,當(dāng)然還包括其它的,諸如傳遞結(jié)構(gòu)體、數(shù)值數(shù)組等類型的情況,詳細(xì)情況可參考以前的文章。 |
|