我有一个脚本,在其中我需要调用其他软件的DLL中的函数。脚本在昨天和过去的几个月中运行,但今天停止了。我昨天卸载并重新安装了python,因为我遇到了其他不相关的问题。
gmAPI = cdll.LoadLibrary(
"C:/Program Files (x86)/GoldMine/gm7s32.dll")
recid = create_string_buffer(16)
gmAPI.GMW_NewRecID(recid, username)这是代码中有try的部分,当我尝试执行第三行时,我得到了错误代码6,无效的句柄。它是一个32位的动态链接库,我在相同的32位解释器上运行它,尽管是重新安装的。
我的cdll对象如下所示:
<CDLL 'C:\Program Files (x86)\GoldMine\gm7s32.dll', handle 10000000 at 0x3f44280>但是,该对象的_handle为: 268435456。
我不是ctype方面的专家,但我假设100000000是无效的句柄,但我希望它与对象的_handle一致。我不知道为什么这会改变。我以前在具有多个解释器的多台机器上运行过它。
发布于 2020-04-24 01:47:54
它现在起作用了。我认为切换到windll而不是cdll可以解决这个问题。仍然不知道为什么它一直在工作,然后停了下来,所以如果有人愿意提供一个理论,去吧。
gmAPI = windll.LoadLibrary(
'C:/Program Files (x86)/GoldMine/gm7s32.dll')
recid = create_string_buffer(16)
gmAPI.GMW_NewRecID(recid, username)https://stackoverflow.com/questions/61392920
复制相似问题