我正在绞尽脑汁试图想出一个DLL加载问题的优雅解决方案.我有一个静态链接到其他加载DLL的lib文件的应用程序.我没有直接加载DLL.我想在可执行文件所在的文件夹之外的另一个文件夹中安装一些DLL.像%working_folder%\ dlls这样的东西 - 我宁愿在我的%working_folder%中没有几十个(是...几十个)DLL .
我正在尝试开发一些主要应用程序的一部分,它将调整搜索路径@ startup.我遇到的问题是这个新的自定义DLL路径不在系统搜索路径中.当我启动应用程序时它崩溃(STATUS_DLL_NOT_FOUND)因为必要的DLL不在适当的位置.我想做的是检查@ startup是否这个新的自定义DLL文件夹在进程环境变量搜索路径中,如果没有添加它.问题是,应用程序尝试在应用程序执行一行代码之前加载所有这些DLL.
我该如何解决?我考虑过编写一个首先启动的帮助应用程序,适当调整环境变量,然后通过CreateProcess启动主应用程序.这将有效我确信它,但它使开发人员的事情变得困难.当他们调试主应用程序时,他们不会首先启动帮助应用程序 - 而不是他们甚至可以做到这一点.
我已经尝试过注册表应用程序路径功能但没有成功.像以前一样鸡和鸡蛋问题.
我能在这做什么?