1. 程式人生 > >ctypes庫呼叫dll詳解

ctypes庫呼叫dll詳解

最近著手開發一個小東西涉及到了API介面的知識點, 第一次使用到了ctypes庫,在網上找了一大圈,基本都是講add.dll之後就沒了。 就像下面這個:

from ctypes import *

dll = CDLL(“test.dll”)  # 呼叫 test.dll
dll.add(10, 30)   # 呼叫 add 函式

  而我需要的讀出一張ACR122U卡的卡號,於是愚笨地寫下了這段程式碼:

from ctypes import *

dll = CDLL('readcard.dll')
print(dll.GetCard_No())

結果很尷尬,每次讀出來的都是不一樣的。。。。。。   後來我才知道,原來它返回的是一個動態地址!!! 於是我加了一行程式碼:

from ctypes import *

dll = CDLL('readcard.dll')
dll.GetCard_No.restype = c_char_p  # 返回值的型別是 一個具有結束符號的字串
print(dll.GetCard_No())

   輸出結果如我所料:完美~~    最後附上參考網址,裡面講的很清楚,感謝。