У меня есть несколько dll, живущих в разных подкаталогах, которые зависят от другой dll третьей стороны, называемой common.dll. Я хотел бы настроить эти библиотеки, чтобы они знали, где найти common.dll, не делая common.dll видимым для других программ, чтобы избежать столкновений.
Например:
- Foo / bar.dll
- Foo / бар / fubar.dll
- общее / common.dll
Как для bar.dll, так и для fubar.dll, в зависимости от common.dll
У меня есть следующие ограничения:
- Несмотря на то, что у меня есть полный контроль над dll, у меня нет контроля над вызывающим исполняемым файлом, поэтому модификация PATH не возможна.
- он должен работать на всех окнах от XP до 7
- Я не могу установить файл common.dll в «известном» месте, используемом Windows
- изменение кода DLL для установки путей через API нежелательно
IOW, что-то вроде unix rpath + ORIGIN на моих dll было бы идеальным решением
Я надеялся, что использование манифеста может помочь, но это выглядит очень сложно или недоступно для Windows XP.