我已经读过了为不同操作系统编译的程序之间的差异。现在,我想知道,为什么有些应用程序只能在 win 8 上运行,而其他应用程序只能在 win 7 上运行,还有一些可以在两者上运行,......?
答案1
它与指定操作系统(例如 Windows 7 或 8)上可用的功能子集有关。
例如,如果我(作为一名程序员)使用酷炫的“任务栏预览”功能并向图标的任务栏预览中添加按钮,那么我就在使用一组特定的编程指令(称为 API)。此 API 仅适用于其设计的系统。它与为不同操作系统编译的程序之间的差异并无二致。
这就是程序仅适用于某些操作系统的原因之一(无论操作系统是否比程序更新)。
另一个原因是程序员专门将程序编译为仅针对一个操作系统(这种情况比您想象的要多)。在这种情况下,当程序运行时,某个标志会启动并显示“与此版本的 Windows 不兼容”或其他情况。
可能还有其他原因,但最常见的是使用非常具体的 API 或专门为操作系统构建程序。
编辑:忘记提到操作系统本身可以被编程为“不与某些其他程序一起工作”。许多为 Windows XP 构建的游戏可以在早期版本的 Windows(2000 及以下)上运行,但无法在 Windows 7+ 上运行。这可能是由于各种原因(例如 API/驱动程序不兼容),Windows 本身可能会出于安全/稳定性原因而“阻止”这些游戏。