python呼叫dll方法

2021-04-17 01:01:10 字數 1320 閱讀 4363

在python中呼叫dll檔案中的介面比較簡單,例項**如下:

如我們有乙個test.dll檔案,內部定義如下:

extern"c

"}在python中我們可以用以下兩種方式載入1.

import

ctypes

dll 

=ctypes.windll.loadlibrary( 

'test.dll')

2.import

ctypes

dll 

=ctypes.windll( 

'test.dll')

其中ctypes.windll為ctypes.windll類的乙個物件,已經在ctypes模組中定義好的。在test.dll中有test介面,可直接用dll呼叫即可

nrst 

=dll.test( )

print

nrst

由於在test這個介面中需要傳遞兩個引數,乙個是void型別的指標,它指向乙個緩衝區。乙個是該緩衝區的長度。因此我們要獲取到python中的字串的指標和長度

#方法一:

sbuf ='

aaaaaaaaaabbbbbbbbbbbbbb

'pstr 

=ctypes.c_char_p( )

pstr.value 

=sbuf

pvoid 

=ctypes.cast( pstr, ctypes.c_void_p ).value

nrst 

=dll.test( pvoid, len( pstr.value) )

#方法二:

test  = dll.test

test.argtypes = [ctypes.c_char_p, ctypes.c_int]

test.restypes = ctypes.c_int

nrst = test(sbuf, len(sbuf))

如果修改test.dll中介面的定義如下:

extern"c

"}由於介面中定義的是cdecl格式的呼叫,所以在python中也需要用相應的型別1.

import

ctypes

dll 

=ctypes.cdll.loadlibrary( 

'test.dll')

##注:一般在linux下為test.o檔案,同樣可以使用如下的方法:

## dll = ctypes.cdll.loadlibrary('test.o')2.

import

ctypes

dll 

=ctypes.cdll( 

'test.dll')

python呼叫dll方法

在python中呼叫dll檔案中的介面比較簡單,例項 如下 如我們有乙個test.dll檔案,內部定義如下 extern c 在python中我們可以用以下兩種方式載入1.import ctypes dll ctypes.windll.loadlibrary test.dll 2.import ct...

python呼叫dll詳解

參考鏈結 windows安裝mingw w64教程 公司業務需要,讓我用python呼叫領導寫好的dll庫,經過一段時間的研究,終於呼叫成功,特此來記錄一下過程 開發環境win10 python3.6.8 64位 安裝這個的目的是生成dll檔案用,參考位址在上面,講一下注意的點。安裝的時候versi...

python呼叫dll動態庫

python呼叫動態庫有兩種型別,主要看dll的匯出函式的呼叫約定 stdll和 cdecl 對應的動態庫的呼叫方式為 ctypes.cdll.loadlibrary test.dll 對應 cdecl呼叫方式 ctypes.windll.loadlibrary test.dll 對應 stdll呼...