是否有任何程序确定应用程序运行所需的最低操作系统?

时间:2016-08-18 22:40:52

标签: c++ windows operating-system

好吧,如果我的标题不够明确,我的目标是Windows操作系统,只是想知道是否有某种类型的程序让我知道某人需要运行我的应用程序的“OS”或更高级别,例如:

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 个答案:

答案 0 :(得分:2)

此类API检查程序可能存在。我不知道有任何存在,我怀疑我知道为什么。

这几乎可以肯定,因为它经常会出错。

例如,如果您的程序使用CreateProcess()运行PowerShell,它将在Windows 98上失败,但是工具如何检测到您正在调用不存在的程序?或者,如果您的程序调用的是不存在的COM接口:在导出或导入表中也不可见。与使用GetProcAddress()在运行时动态加载的函数相同。

请注意,这并不代表在实际案例中不可能解决问题。但是,该程序不可能可以解决所有情况,并且需要一些非常重要的静态分析才能适用于大多数实际情况。只有不切实际的案例,比如你提到的案件,才是微不足道的。