Delphi Packed レコードを ctypes で処理できるかどうかを知りたいです。stdcall 規則を使用していくつかのメソッドを公開している Delphi で記述された dll があります。
メソッドの 1 つは、次のようにパックされたカスタム レコードを返します。
TMapCell = packed record
Tile : Word;
Z : Shortint;
end;
レコードがパックされていない場合、次のような方法で処理できます。
class TMapCell(Structure):
_fields_ = [
('Tile', c_ushort),
('Z', c_byte),
]
しかし、使用しようとすると、アクセス違反エラーが発生します
WindowsError: exception: access violation writing 0x0000112D