Мой продукт состоит из двух dll (A.dll и B.dll для ясности), A.dll зависит от B.dll. Обе библиотеки A и B находятся в одной папке (скажем, c: \ app). В то же время старая версия B.dll находится в папке Windows \ System32. Когда я пытаюсь запустить следующую команду из командной строки (текущая папка c: \ app):
<code>rundll32.exe "c:\app\A.dll",DoWork
Я получаю сообщение об ошибке, потому что rundll32 использует старую версию B.dll из папки System32. Я пытался использовать API SetDllDirectory из функции DllMain библиотеки A.dll, чтобы добавить папку c: \ app в путь поиска, но у меня это не работает.
Я не могу найти полезную и полную информацию о внутренностях rundll32 или какую-либо информацию о порядке загрузки dll.
Возможно ли успешно выполнить rundll32 в этой конфигурации развертывания? (Я имею в виду загрузить новую версию B.dll из папки c: \ app).