我正在尝试在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
根据GetFileVersionInfoSizeA的msdn doc,第二个参数应为“指向该函数设置为零的变量的指针”。我尝试了以下代码,但给出的错误与以前相同。
dwLen = _GetFileVersionInfoSizeA(lptstrFilename, LPVOID)
我不确定我缺少什么。注意-这是我第一次使用ctypes。