Python中调用的dll接口函数里面,如果输入是字符指针类型,(python3注意加入编码格式,因为Python3默认unicode编码,传入到动态库中时必须指定编码格式.encode(’ '))
如接口函数为funA(char* abc),则Python调用代码为
import ctypes
pyDll = ctypes.CDll('./test.dll') # 加载动态库
pyDll.funA.argtypes = [ctypes.c_char_p] # 定义输入为字符指针数组
outPut = pyDll.funA('inputStr'.encode("UTF-8"))
如果输出为结构指针,eg 接口函数funA(char* abc, stru* def),则Python调用代码为
先声明结构体
class stru(ctypes.Structure):
__fields__ = [
('aaa', c_int),
('bbb', c_char)
]
resStru = stru()
pyDll.funA('inputStr'.encode("UTF-8"), byref(resStru))