我想从我自己的DLL中调用一些第三方DLL例程。我只是不确定如何在C ++中这样做。
答案 0 :(得分:6)
您可以使用与可执行文件相同的方式在DLL中使用load-time dynamic linking或run-time dynamic linking。唯一的限制是不要从LoadLibrary
函数调用DllMain
以避免死锁。
答案 1 :(得分:2)
LoadLibrary和GetProcAddress是你的朋友之一......
答案 2 :(得分:2)
如果此dll具有.lib文件,则只需将其添加到链接器输入并静态导入其函数。如果没有,有一些工具可以从.dll生成.lib文件。
您还可以使用LoadLibrary
和GetProcAddress
动态导入功能
MSDN说你不能从DllMain调用LoadLibrary。但在大多数情况下,没有什么不好的事情发生。
答案 3 :(得分:1)
通常,您通过项目中的导出库链接到DLL。然后,只要DLL在运行时位于程序的路径中,程序就可以调用DLL函数。
通过手动加载DLL并获取所需的函数地址,也可以(但需要做更多的工作)来避免所需函数的链接时解析,但如果第三方DLL支持通常的话,则不需要这样做链接时机制。