2024-09-28 05:19:31 发布
网友
我有一个用Delphi编写的DLL,但我需要在Python应用程序中使用它。在
在Delphi中,它调用easy:Calc:=CalcCode(@Data, 32, @Num);
Calc:=CalcCode(@Data, 32, @Num);
@Data和@Num是指向字节数组的指针:
@Data
@Num
Data: array[0..31] of byte; Num: array[0..7] of byte;
如何在Python程序中通过ctypes调用这个函数?在
Delphi dll函数声明:
下面的Python代码演示了如何调用该函数:
import ctypes lib = ctypes.WinDLL(dllname) CalcCode = lib.CalcCode CalcCode.restype = ctypes.c_uint CalcCode.argtypes = ctypes.POINTER(ctypes.c_byte*32), ctypes.c_int, ctypes.POINTER(ctypes.c_byte*8) data = (ctypes.c_byte*32)(*range(32)) num = (ctypes.c_byte*8)() retval = CalcCode(data, len(data), num) print retval, list(num)
我使用了这个测试DLL:
输出为:
496 [-32, 3, 0, 0, 0, 0, 0, 0]
下面的Python代码演示了如何调用该函数:
我使用了这个测试DLL:
^{pr2}$输出为:
相关问题 更多 >
编程相关推荐