我是新的C的“隐藏/黑暗的地方” ++,我想知道如何从不同的目录或一个内部子目录加载.dll文件,其中我目前的可执行文件运行C++从子目录加载DLL?
防爆:
./MyAppDirectory
/MyApp.exe
/SomeDLL.dll
/AnotherDLL.dll
/SubDirectory
/SomeDLL2.dll
/AnotherDLL2.dll
/YetAnotherDLL.dll
/...
所以“MyApp.exe将”自动加载“SomeDLL.dll”和“AnotherDLL.dll”从它的根文件夹“MyAppDirectory”不过,我也希望能够加载“SomeDLL2.dll”,“ “MyAppDirectory”文件夹中的“SubDirectory”文件夹中的“AnotherDLL2.dll”,“YetAnotherDLL.dll”等。
我一直在做一些搜索,并从我所发现的唯一的解决方案是:
- 1)修改可执行文件的工作目录。
- 2)将DLL文件放入Windows根目录。
- 3)修改PATH环境变量。
但他们都有一些不好的一面(这里不值得一提),这不是我真正需要的。另一个解决方案是通过“特定于应用程序的路径!”其中涉及Windows注册表的工作,似乎稍好于前面提到的那些。
但是我需要能够使用C++在“MyApp.exe”中执行此操作,而无需使用外部方法。
我正在使用MinGW 4.7.2和我的IDE是Code :: Blocks 12.11我的操作系统是Windows XP SP3 Pro x86。
任何参考,教程,文档,示例等被接受,并感谢您的时间:d
你所有的三个分项列表都是坏主意。不要做任何这些。 –
[变更静态链接DLL的DLL搜索路径]的可能的重复(http://stackoverflow.com/questions/3832290/altering-dll-search-path-for-static-linked-dll) – MSalters