我是 C++ 的“隐藏/黑暗的地方”的新手,我想知道如何从不同目录或当前可执行文件运行的子目录中加载 .dll 文件
前任:
./MyAppDirectory
/MyApp.exe
/SomeDLL.dll
/AnotherDLL.dll
/SubDirectory
/SomeDLL2.dll
/AnotherDLL2.dll
/YetAnotherDLL.dll
/...
所以“MyApp.exe”会自动从它的根文件夹“MyAppDirectory”加载“SomeDLL.dll”和“AnotherDLL.dll”但是我也希望能够加载“SomeDLL2.dll”、“AnotherDLL2.dll”、“YetAnotherDLL”。 dll”等来自“MyAppDirectory”文件夹内的“SubDirectory”文件夹。
我一直在做一些搜索,从我发现的唯一解决方案是:
- 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