Python調(diào)用C++動(dòng)態(tài)庫通常通過使用ctypes庫來實(shí)現(xiàn)。ctypes是Python的一個(gè)內(nèi)置模塊,它允許Python代碼訪問C函數(shù)和C數(shù)據(jù)類型,從而實(shí)現(xiàn)Python與C/C++代碼的交互。
以下是使用ctypes調(diào)用C++動(dòng)態(tài)庫的一般步驟:
例如,假設(shè)有一個(gè)C++動(dòng)態(tài)庫testlib.dll,其中有一個(gè)函數(shù)add,用于計(jì)算兩個(gè)整數(shù)的和??梢酝ㄟ^以下Python代碼調(diào)用該函數(shù):
import ctypes
# 加載動(dòng)態(tài)庫
testlib = ctypes.CDLL('testlib.dll')
# 定義C/C++函數(shù)的原型
add_func = testlib.add
add_func.restype = ctypes.c_int
add_func.argtypes = [ctypes.c_int, ctypes.c_int]
# 調(diào)用C/C++函數(shù)
result = add_func(3, 4)
print(result) # 輸出7
在上述示例中,我們首先加載了testlib.dll動(dòng)態(tài)庫,然后定義了add函數(shù)的原型,并最后通過調(diào)用add函數(shù)傳入?yún)?shù)3和4來計(jì)算它們的和。