Regsvr32 не удается найти dll в текущей папке

когда я использую " regsvr32 foo.dll "я получаю" указанный модуль не может быть найти ошибки.

ошибка вызвана тем, что regsvr32 не может найти файл, даже если это текущая папка.

Я указал полный путь, и он по-прежнему не работают. Есть идеи????

2 ответов


это может произойти, если foo.dll имеет depenency на bar.dll и bar.dll это не может быть найдено.

попробуйте использовать depends.exe из MSVC для проверки зависимостей foo.dll и посмотреть, если таковые отсутствуют.

другой вариант-загрузить и запустить Филимон. Затем запустите regsvr32 снова и посмотреть, какой файл / модуль он не может найти. Это определенно должно отследить его.


на 64-битных Осах Dependency Walker был неинформативным для меня; и FileMon был заменен Process Monitor (см. https://docs.microsoft.com/en-us/sysinternals/downloads/procmon для загрузки утилиты). Вот как я смог найти недостающие ссылки, используя Process Monitor:

ProcMon Toolbar for the Filter Dialog

откройте диалоговое окно фильтр на панели инструментов или меню.

ProcMon Filter Dialog

добавить Process Name of regsvr32.exe в список фильтров и удалить любой PID фильтры.

ProcMon Clear Toolbar Button

очистить список ...

ProcMon Capture Toolbar Button

... включите захват, если он еще не включен.

запустить свой regsvr32.exe команда из окна консоли. После завершения, вы можете переключить захват выключено.

missing reference lines

ищите недостающую ссылку после regsvr32 загрузил вашу DLL.