不同版本的Windows操作系统之间应用程序不兼容的主要原因是什么? Microsoft的一般说明是什么,以便创建的应用程序保持兼容?不同版本的Windows操作系统之间的Windows应用程序不兼容原因
-3
A
回答
1
这就是知道的向前兼容性和向后兼容性。在Microsoft Windows中,您可以编写托管(C#,VB等)和本机(C/C++)代码(不包括非Microsoft技术(如Java))。本地代码大多使用本地Windows APIs
。如果您使用在较新版本的Windows中引入的API,则您的应用程序将不会是向后兼容,并且不会在较早版本的Windows上运行。请始终检查所用API的Windows所需最低版本。
我知道没有解释为什么Windows API可能不是向前兼容。顺便说一下,微软的惯例是,当他们修改API的行为或接口时,他们保留旧的(可能为向后兼容性),并添加与旧的名称相同的新名称加上Ex
扩展。
在托管的世界中,您使用.NET
框架。为了解释.NET
框架版本的兼容性我指的是Microsoft's document:
.NET框架支持向前和向后兼容性。 在.NET Framework的上下文中,向后兼容意味着 使用早期版本的.NET 框架创建的应用程序将在更高版本上运行。相反,转发 兼容性意味着使用.NET Framework的更高版本 创建的应用程序将运行在较早版本上。
.NET框架为后向 兼容性提供了高度的支持。例如,使用版本 1.0创建的大多数应用程序都将在版本1.1上运行。 .NET Framework还支持向前兼容性。但是,为了向前兼容,您可能需要修改应用程序以使应用程序按预期运行。对于向后和向前兼容的 ,对有助于提高安全性,正确性或功能的.NET Framework更改也可能引发兼容性问题。
对于.NET框架的每个版本,Microsoft会为您提供有关可能会破坏应用程序兼容性的更改的指导。我提一些,你可以很容易地找到休息:
相关问题
- 1. 不同操作系统版本之间的iPhone应用程序兼容性
- 2. Windows Phone 7应用程序与Windows 8操作系统的兼容性
- 3. Delphi XE 5在Windows 10操作系统上的Windows应用程序兼容性
- 4. 针对不同版本的Windows Phone操作系统
- 5. R在不同的操作系统中闪亮的应用程序兼容性?
- 6. 使快速应用程序与不同的操作系统兼容
- 7. 不兼容Windows窗体应用程序
- 8. 如何测试我的应用程序在不同国家的Windows操作系统版本上的功能?
- 9. IE8在不同操作系统版本之间的行为有所不同吗?
- 10. 在Windows 7操作系统上开发Windows Phone应用程序
- 11. 字体不兼容跨操作系统/不同的机器
- 12. Windows操作系统环境下C++应用程序与Java应用程序之间的进程间通信
- 13. Tomcat 5.5.x版本是否与Windows 2012服务器操作系统兼容?
- 14. 与原版iPad迷你版不兼容的应用程序
- 15. 不同版本之间的Android编程和兼容
- 16. 适用于Windows 8操作系统的应用程序<Win8
- 17. 一批CMD为不同版本的Windows兼容的
- 18. 版本之间的应用程序兼容性
- 19. 如何让路径名与不同的操作系统兼容?
- 20. 在不同的操作系统一个应用程序使用不同版本的.NET的DLL
- 21. 各种.NET Framework版本的操作系统兼容性
- 22. 用于查找Windows操作系统版本的VB6代码
- 23. 该文件的版本与Windows版本不兼容
- 24. 检测外壳脚本中的Windows操作系统版本
- 25. Qt Jambi应用程序和不同的操作系统
- 26. 不同操作系统上的JavaFx应用程序字体
- 27. 在旧版本的操作系统上运行应用程序
- 28. 在不同版本的Windows上测试UWP应用程序?
- 29. 目标设备的操作系统版本不符合应用程序的最低要求。最低要求的操作系统是Windows 10.0
- 30. Xcode应用程序版本与Mac OS X版本不兼容
艾哈迈德@:感谢您的输入。 – seccpur
当从16位Windows(即Windows 3.x)迁移到32位Windows(Win9x)时,引入了Windows API的'Ex'版本。这是一次**的一次性交易。这不是一个惯例。通过引入新的参数或版本控制输入结构,大多数API都以向前兼容的方式进行扩展。但是,您忽略了* API表面,这对于版本控制来说是最灵活的:COM。COM接口一直都在添加,使用COM的代码既向前又向后兼容。另外,WinRT基于COM。 – IInspectable
@IInspectable你确定它不是一个约定?我们甚至有带ExEx前缀的API;这在各种书中都有提及。 –