Любая программа, которая определяет самую низкую ОС, необходимую для запуска вашего приложения?

Хорошо, если мой заголовок был недостаточно ясен, я нацеливаюсь на ОС Windows и просто хотел узнать, существует ли какая-либо программа, которая позволила бы мне узнать, какая "ОС" или выше кому-то нужна для запуска моего приложения, например:

Example functions used in application:
OpenFile - Minimum Supported Client: Windows XP
BCryptEncrypt - Minimum supported client: Windows Vista
...

Scan completed! Result: Minimum supported client: Windows Vista.

Я знаю, что есть приложение под названием DependencyWalker, но, насколько я могу судить, показывает только зависимые.dll. Существуют ли передовые практики или методы определения минимальных требований к операционной системе?

1 ответ

Решение

Такая проверка API может существовать. Я не знаю ни о чем существующем, и я подозреваю, что знаю почему.

Это почти наверняка, потому что это будет неправильно слишком часто.

Например, если ваша программа использует CreateProcess() запустить PowerShell не получится в Windows 98, но как инструмент обнаружит, что вы вызываете несуществующую программу? Или, если ваша программа вызывает COM-интерфейс, который не существует: он не будет виден в таблицах экспорта или импорта. То же самое с функциями, которые загружаются динамически во время выполнения, используя GetProcAddress(),

Обратите внимание, что это не означает, что проблему невозможно решить в практических случаях. Тем не менее, программа не может быть решена для всех случаев, и для большинства практических случаев требуется статичный анализ, требующий больших нагрузок. Только нереальные случаи, подобные тем, которые вы упомянули, будут тривиальными.

Другие вопросы по тегам