通过ctypes在Python中使用delphidll

2024-09-28 05:19:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个用Delphi编写的DLL,但我需要在Python应用程序中使用它。在

在Delphi中,它调用easy:Calc:=CalcCode(@Data, 32, @Num);

@Data@Num是指向字节数组的指针:

Data: array[0..31] of byte;
Num: array[0..7] of byte;

如何在Python程序中通过ctypes调用这个函数?在


Delphi dll函数声明:

^{pr2}$

Tags: of函数应用程序data字节easycalc数组
1条回答
网友
1楼 · 发布于 2024-09-28 05:19:31

下面的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:

^{pr2}$

输出为:

496 [-32, 3, 0, 0, 0, 0, 0, 0]

相关问题 更多 >

    热门问题