単純なクラスは、32ビットWindows 7でこの奇妙な動作を引き起こします。この構造の配列をdllに渡してから、dllで満たされたパケットのコンテンツを取得しようとしています。このクラスのオブジェクトを作成したときに、c_void_pがNoneTypeオブジェクトであることを発見しました。これは通常の動作ですか?
import ctypes
class io_packet( ctypes.Structure ):
_fields_ = [( 'size', ctypes.c_uint32 ),
( 'header', ctypes.c_uint32 ),
( 'string1_size', ctypes.c_uint32 ),
( 'string2_size', ctypes.c_uint32 ),
( 'string1', ctypes.c_char * 128 ),
( 'string2', ctypes.c_char * 64 ),
( 'virt_handle', ctypes.c_void_p ), ]
a = io_packet()
a.size
a.header
a.string1_size
a.string2_size
a.string1
a.string2
a.virt_handle