一个简单的类在 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