【发布时间】:2019-12-24 06:31:25
【问题描述】:
我正在尝试在 python ctypes 中执行 windll.version.GetFileVersionInfoSizeA()。我正在执行以下代码:
_GetFileVersionInfoSizeA = ctypes.windll.version.GetFileVersionInfoSizeA
_GetFileVersionInfoSizeA.argtypes = [ctypes.c_char_p, ctypes.c_void_p]
_GetFileVersionInfoSizeA.restype = ctypes.c_uint32
_GetFileVersionInfoSizeA.errcheck = RaiseIfZero # RaiseIfZero is a function to raise error
# lptstrFilename is the file path
dwLen = _GetFileVersionInfoSizeA(lptstrFilename, None)
此代码在 python 2 中完美运行,但在 python 3.8 中无法运行。它给出了以下错误:
argument 1: <class 'TypeError'>: wrong type
根据msdn doc对于GetFileVersionInfoSizeA,第二个参数应该是:
“指向函数设置为零的变量的指针。”
我尝试了以下代码,但它给出了与以前相同的错误。
dwLen = _GetFileVersionInfoSizeA(lptstrFilename, LPVOID)
我不确定我错过了什么。
注意 - 这是我第一次使用ctypes。
【问题讨论】:
标签: python python-3.x python-2.7 ctypes python-3.8