我试图调用的函数是:
void FormatError (HRESULT hrError,PCHAR pszText);
使用windll 从自定义 dll 中获取。
c_p = c_char_p()
windll.thedll.FormatError(errcode, c_p)
结果是:
ValueError: Procedure probably called with not enough arguments (4 bytes missing)
相反,使用 cdll 将字节丢失计数器增加到 12。上面的 errcode 是从同一 dll 中的另一个函数返回的 errercode。我怎样才能正确接听电话?
至少,如果正确设置,您会得到更多描述性错误argtypes和restype.
尝试这样做:
windll.thedll.FormatError.argtypes = [ctypes.HRESULT, ctypes.c_char_p]
windll.thedll.FormatError.restype = None
您也很有可能使用了错误的调用约定 - 请查看调用函数部分 and 加载库部分有关如何使用不同调用约定的详细信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)