Как получить отсутствующее имя DLL после того, как GetLastError () вернет ERROR_MOD_NOT_FOUND - PullRequest
4 голосов
/ 05 октября 2011

Мое приложение загружает DLL, используя LoadLibrary(), подавляя стандартное окно сообщения о критической ошибке.Когда LoadLibrary() завершается неудачно и GetLastError() возвращает ERROR_MOD_NOT_FOUND (0x7E), я хотел бы получить отсутствующее имя DLL.Этот код ошибки устанавливается не только при отсутствии запрошенной DLL, , но и при отсутствии какой-либо DLL, от которой он зависит .

Стоит отметить, что стандартное окно сообщения (которое подавляется)отображает правильное отсутствующее имя DLL, и вопрос в том, как я могу получить его в коде.

Спасибо

Ответы [ 2 ]

1 голос
/ 07 октября 2011

Если вы вызываете LoadLibrary с именем DLL, разве вы не знаете этого имени?

Вы всегда можете попробовать перехват LoadLibrary, если это не так.

1 голос
/ 05 октября 2011

Я не уверен, что есть простой способ получить имя отсутствующей DLL.Но вы, вероятно, можете найти его, пройдя через LoadLibrary () в отладчике и увидев, какая функция завершается ошибкой с каким именем файла в параметрах.depen.exe может также отображать зависимости.

Кроме того, возможно, стоит попробовать запустить монитор процесса и с помощью соответствующих фильтров посмотреть, какие ошибки ввода-вывода имеются в вашем процессе и для каких файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...