从dll加载dll的最佳方法是什么?
我的问题是我不能在process_attach上加载动态链接库,也不能从主程序加载动态链接库,因为我不能控制主程序的源代码。因此我也不能调用非dllmain函数。
发布于 2010-04-20 22:51:00
最健壮的方法是将第一个DLL链接到第二个DLL的导入库。这样,第二个DLL的实际加载将由Windows本身完成。听起来非常微不足道,但并不是每个人都知道DLL可以链接到其他DLL。Windows甚至可以处理循环依赖关系。如果A.DLL加载需要A.DLL的B.DLL,则解析B.DLL中的导入,而无需再次加载A.DLL。
发布于 2010-04-21 16:36:01
我建议你使用延迟加载机制。DLL将在您第一次调用导入的函数时加载。此外,您还可以修改加载函数和错误处理。有关详细信息,请参阅Linker Support for Delay-Loaded DLLs。
发布于 2010-04-20 20:01:38
一种可能的答案是通过使用LoadLibrary和GetProcAddress来访问指向已加载的dll中找到/定位的函数的指针-但是您的意图/需求还不够清楚,无法确定这是否是合适的答案。
https://stackoverflow.com/questions/2674736
复制相似问题