Я ломаю голову, пытаясь найти элегантное решение проблемы загрузки DLL. У меня есть приложение, которое статически ссылается на другие файлы lib, которые загружают библиотеки DLL. Я не загружаю DLL напрямую. Я хотел бы иметь несколько DLL-файлов в другой папке, отличной от папки, в которой находится исполняемый файл. Что-то вроде% working_folder% \ dlls - я бы предпочел, чтобы в моем% working_folder% не было десятков (да ... десятков) DLL. ,
Я пытаюсь разработать что-то, что является частью основного приложения, которое будет корректировать путь поиска при запуске. Проблема, с которой я сталкиваюсь, заключается в том, что этот новый пользовательский путь к DLL отсутствует в системном пути поиска. Когда я запускаю приложение, оно падает (STATUS_DLL_NOT_FOUND), потому что необходимые DLL не находятся в соответствующих местах. Что я хотел бы сделать, это проверить @ startup, если эта новая пользовательская папка DLL находится в пути поиска переменной среды процесса, и если нет, добавить ее. Проблема в том, что приложение пытается загрузить все эти библиотеки DLL, прежде чем приложение выполнит одну строку кода.
Как мне это исправить? Я подумал о написании справочного приложения, которое запускается первым, корректирует переменные среды соответствующим образом и запускает главное приложение через CreateProcess. Это будет работать, я в этом уверен, но это усложняет работу разработчиков. Когда они отлаживают основное приложение, они не собираются сначала запускать вспомогательное приложение - не то чтобы они даже могли это сделать.
Я безуспешно пытался использовать функцию пути к реестру. Та же проблема с курицей и яйцом, что и раньше.
Что я могу сделать здесь?