gpt4 book ai didi

python - 我如何用 Python ctypes 表示打包的 Delphi 记录?

转载 作者:太空宇宙 更新时间:2023-11-04 03:54:48 29 4
gpt4 key购买 nike

我想知道是否可以使用 ctypes 处理 Delphi 打包记录。我有一个用 Delphi 编写的 dll,它公开了一些具有 stdcall 约定的方法。

其中一个方法正在返回像这样打包的自定义记录:

TMapCell = packed record
Tile : Word;
Z : Shortint;
end;

当记录没有打包时,我可以用这样的方式处理它们:

class TMapCell(Structure):
_fields_ = [
('Tile', c_ushort),
('Z', c_byte),
]

但是当我尝试使用它时出现访问冲突错误

WindowsError: exception: access violation writing 0x0000112D

最佳答案

指定_pack_控制包装的属性:

class TMapCell(Structure):

_pack_ = 1

_fields_ = [
('Tile', c_ushort),
('Z', c_byte),
]

当然,如果您一开始就避免打包您的唱片,那就更好了。总是喜欢对齐的记录。

关于python - 我如何用 Python ctypes 表示打包的 Delphi 记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19283293/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com