我正在尝试从 Python 访问 DLL 中的整数数组。我遵循 ctypes 文档页面中的指南,但我得到空指针访问异常。我的代码是:
if __name__ == "__main__":
cur_dir = sys.path[0]
os.chdir(cur_dir)
api = CDLL("PCIE_API")
PciAgentIndex=POINTER(c_uint32).in_dll(api, "PciAgentIndex")
print(PciAgentIndex)
print(PciAgentIndex[0])
我得到:
ValueError: NULL pointer access
当我打印最后一行时。
当我通过 Eclipse 调试器运行此代码片段并检查 PciAgentIndex 的内容属性时,我得到:
str: Traceback (most recent call last):
File "C:\Program Files\eclipse\plugins\org.python.pydev_2.7.5.2013052819\pysrc\pydevd_resolver.py", line 182, in _getPyDictionary
attr = getattr(var, n)
ValueError: NULL pointer access
我究竟做错了什么?我在 Windows 上并使用 Python 3.3.2。