我有一个DLL插件来连接两个不同的外部应用程序。长话短说,应用程序A通过公开函数调用我的插件,然后我的插件调用应用程序B(也通过公开的函数)并将值从B返回到A.
应用程序A有一个配置文件,我必须在其中指定DLL插件的路径。然后它加载DLL并调用它。遗憾的是,应用程序A无法加载多个DLL。是否有可能在插件中编写自定义代码以在加载时加载一些额外的DLL?换句话说,当我的插件被任何进程加载时,我想总是加载应用程序B DLL。
其他解决方案是将应用程序B的目录添加到主进程将搜索DLL的文件夹列表中,但是我也不知道如何执行此操作。
现在我将应用程序B目录添加到系统路径env变量中,但这是不可接受的解决方案。
由于
答案 0 :(得分:1)
听起来你需要修改DLL search order。使用SetDllDirectory
或AddDllDirectory
来执行此操作。
或者,您可以通过在调用LoadLibrary
时传递DLL的完整路径来满足您的要求。如果您加载的DLL没有包含在应用程序目录结构中的任何依赖项,这可能会很好。
答案 1 :(得分:0)
您是否创建了DLL?如果你正在创建DLL,那么我建议你创建静态库而不是DLL,然后使用这个静态库,你可以创建一个DLL,它将包含你需要的所有符号。