Python: ctypes 和指向结构的指针
Python: ctypes and Pointer to Structure
我正在尝试创建一个结构指针,然后取消引用它。但它崩溃了。我用这个简单的代码模仿了这里的行为。
from ctypes import *
import ctypes
class File(Structure):
_fields_ = [("fileSize", c_uint),
("fileName", c_byte * 32)]
f = File()
f.fileSize = 2
print(f.fileSize)
P = ctypes.POINTER(File)
p = P.from_address(addressof(f))
print(p.contents.fileSize)
有人能指出这段代码有什么问题吗?
提前致谢。
这有效(我刚试过):
p = pointer(f)
根本不需要实例化P。
更清楚地说,鉴于 p 和 P 在屏幕上看起来非常相似:
from ctypes import *
class File(Structure):
_fields_ = [("fileSize", c_uint),
("fileName", c_byte * 32)]
f = File()
f.fileSize = 2
print(f.fileSize)
p = pointer(f)
print(p.contents.fileSize)
我正在尝试创建一个结构指针,然后取消引用它。但它崩溃了。我用这个简单的代码模仿了这里的行为。
from ctypes import *
import ctypes
class File(Structure):
_fields_ = [("fileSize", c_uint),
("fileName", c_byte * 32)]
f = File()
f.fileSize = 2
print(f.fileSize)
P = ctypes.POINTER(File)
p = P.from_address(addressof(f))
print(p.contents.fileSize)
有人能指出这段代码有什么问题吗?
提前致谢。
这有效(我刚试过):
p = pointer(f)
根本不需要实例化P。 更清楚地说,鉴于 p 和 P 在屏幕上看起来非常相似:
from ctypes import *
class File(Structure):
_fields_ = [("fileSize", c_uint),
("fileName", c_byte * 32)]
f = File()
f.fileSize = 2
print(f.fileSize)
p = pointer(f)
print(p.contents.fileSize)