【发布时间】:2013-10-17 11:26:42
【问题描述】:
我想知道是否可以使用 ctypes 处理 Delphi Packed 记录。 我有一个用 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
【问题讨论】:
-
顺便说一下,ctypes 的文档和其他标准 Python 库一样非常出色。从这里开始,您几乎可以找到您需要了解的有关 ctypes 的所有信息:docs.python.org/2.7/library/ctypes.html#module-ctypes
标签: python delphi record ctypes