【发布时间】:2016-10-13 12:11:11
【问题描述】:
我编写了一个静态库,它依赖于 3 个库 a.lib、b.lib、c.dll。现在我已经编写了一个测试项目,它适用于这个项目。但是还有另一个项目在它的一个 dll 中包含这个静态库,比如 x.dll,然后在项目中使用这个 dll。
现在,当项目尝试使用 LoadLibrary 加载 x.dll 时,它永远不会返回并继续等待。我将 c.dll b.lib 和 a.lib 都保留在同一位置,但仍然无法加载。 尝试使用依赖walker,但在包含此库之前和之后看不到太大差异。
我应该如何确定问题? 我可以在 .lib 中包含所有依赖项吗?我觉得因为它是静态库,所以它本身应该包含所有依赖项。 在此先感谢您的帮助。 该项目是visual studio 2013中的visual c++。
【问题讨论】:
-
看到您的程序在 LoadLibrary() 上死锁只有一种解释:您在 DllMain() 入口点中放置了太多代码。谷歌“dllmain loader lock”获取基本帮助。
标签: c++ visual-studio dll static-libraries