proj1.dll
的文件,它依赖于另一个DLL文件 proj2.dll
。我使用VS2013编译 proj1.dll
时,编译器输出了导入库,用于编译 proj2.dll
。我还导出了我想要使用的公共函数。现在我有两个符合“cdll”标准的独立DLL文件。我想在Python中使用
proj1.dll
,但我遇到了以下问题:import ctypes
# Crashes saying no entry point for "some_func" in proj2.dll
ctypes.cdll.LoadLibrary("C:\myfolder\proj1.dll")
ctypes.cdll.LoadLibrary("C:\myfolder\proj2.dll") # Loads fine
ctypes.cdll.LoadLibrary("C:\myfolder\proj1.dll") # Loads fine if proj2 is loaded first
当我将proj2
作为静态库构建并在proj1
中链接到它时,从Python调用此DLL以前是有效的。这两个DLL文件存在于同一个文件夹中。我甚至尝试将该文件夹的路径添加到我的PATH环境变量中,以查看是否存在路径问题,但没有任何改变。
我曾认为Windows会加载proj1.dll
,然后加载dll的依赖项。我错了吗?调用者(Python)是否必须先加载依赖的DLL文件?有人知道为什么会发生这种情况吗?
myfolder
?你可能需要检查你的proj1.dll
来确认它是否包含依赖项。https://dev59.com/uGs05IYBdhLWcg3wNPO7 - user590028