如果在运行时链接第一个DLL,DLL是否可以链接到具有导入库的另一个DLL?

时间:2009-10-04 09:01:19

标签: dll linker

我正在使用其SDK为音频播放器(foobar2000)编写DLL。我的DLL链接到另一个DLL,我使用导入库(.lib)这样做了。但是,在运行时,音频播放器抱怨我的DLL(链接到另一个的DLL)缺少依赖项。

我不知道这是否可以推广,但如果第一个DLL在运行时没有导入库链接,那么它是否可以链接到另一个带有导入库的DLL?如果确实如此,为什么会这样呢?

3 个答案:

答案 0 :(得分:1)

您可以在运行时将DLL链接到任何其他DLL。链接DLL的规则是相同的。你能发布缺失的依赖项的名称吗?依赖是否是正确的目录?

答案 1 :(得分:0)

你的dll应该可以正常工作,我认为你必须使用依赖walker检查它以查看你缺少的东西

答案 2 :(得分:0)

当OS加载DLL(当然也是EXE)时,它会查找其导入表并尝试加载导入的库。

如果找不到,则会看到您所描述的错误。

您可以使用LoadLibrary和GetProcAddress动态加载依赖库来阻止它,但是您需要处理缺少依赖项的错误。