DLL可以调用/加载另一个DLL吗?

时间:2010-12-06 20:18:56

标签: c++ windows dll

我想从我自己的DLL中调用一些第三方DLL例程。我只是不确定如何在C ++中这样做。

4 个答案:

答案 0 :(得分:6)

您可以使用与可执行文件相同的方式在DLL中使用load-time dynamic linkingrun-time dynamic linking。唯一的限制是不要从LoadLibrary函数调用DllMain以避免死锁。

答案 1 :(得分:2)

LoadLibrary和GetProcAddress是你的朋友之一......

答案 2 :(得分:2)

如果此dll具有.lib文件,则只需将其添加到链接器输入并静态导入其函数。如果没有,有一些工具可以从.dll生成.lib文件。

您还可以使用LoadLibraryGetProcAddress动态导入功能 MSDN说你不能从DllMain调用LoadLibrary。但在大多数情况下,没有什么不好的事情发生。

答案 3 :(得分:1)

通常,您通过项目中的导出库链接到DLL。然后,只要DLL在运行时位于程序的路径中,程序就可以调用DLL函数。

通过手动加载DLL并获取所需的函数地址,也可以(但需要做更多的工作)来避免所需函数的链接时解析,但如果第三方DLL支持通常的话,则不需要这样做链接时机制。