Qubc
@Qubc
Ненавижу полисемию.

Почему PowerShell не сообщает об отсутствии .dll файла?

Допустим, есть helloworld.exe и для его работы необходима библиотека libstdc++-6.dll. Адрес директории с этой библиотекой добавлен в PATH. helloworld.exe работает нормально.

Если удалить директорию из PATH (и перезапустить cmd и powershell), то запуск helloworld.exe из привычной cmd приводит к всплывающей ошибке, в которой написано имя отсутствующей библиотеки.

Но при запуске из powershell нет всплывающей ошибки! Это выглядит очень странно и неудобно.

Это баг или фича?
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
@MaxKozlov Куратор тега PowerShell
Почему - не скажу, скорее всего особеность запуска именно из Powershell.
Start-Process helloworld.exe
Даст вам то же самое окно GUI с ошибкой
А в самом PS можно смотреть на $LASTEXITCODE
У меня туда на программу с отсутствующей dll возвращает 0xc0000135
From the ntstatus.h SDK header file:

//
// MessageId: STATUS_DLL_NOT_FOUND
//
// MessageText:
//
// The program can't start because %hs is missing from your computer.
// Try reinstalling the program to fix this problem.
//
#define STATUS_DLL_NOT_FOUND ((NTSTATUS)0xC0000135L) // winnt


Хотя, скорее всего, это как раз окно с ошибкой - особенность запуска из Explorer, а cmd наверняка использует shell.open
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
пишут что глюк Повершелла
https://github.com/PowerShell/PowerShell/issues/7654
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы