我正在开发一个应用程序,用户可以将自己的插件开发为dll文件。他们需要将这些dll文件放到特定路径,以便我的应用程序(C ++)可以加载它们并运行。问题是,当用户开发一个dll文件依赖于另一个dll文件并将两个文件放到我的dll路径时,我的应用程序找不到第二个dll文件。
例如:
DllA(C ++)取决于DllB(C#) 我的应用程序加载DllA但找不到DllB并失败。
如果用户将DllB放入应用程序二进制路径并将DllA放入特定的dll路径,我可以执行插件。我还尝试将DllB放入各种目录,如windows或system32,但它再次失败。我也尝试将我的dll路径添加到PATH环境变量但没有效果。
我已经在执行SetDLLDirectory函数以在特定路径中加载DllA。由于我无法控制用户代码,我也无法让他们在DllA代码中调用此函数。我的问题是如何强制窗口搜索我的特定DLL路径?