在理解10.0.19041.0和10.0.22000.0SDK之间的差异时,我遇到了这个页面的https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/。经过研究,我了解到10.0.22000.0主要用于windows 11应用程序。
如果我们选择10.0.019041作为包并构建应用程序,它不会在windows 11上运行吗?
如果我们希望在windows 11上运行我们的应用程序,我们需要选择10.0.22000.0而不是10.0.19041.0。
如果我的理解有误,请纠正我。谢谢你的帮助!
发布于 2022-08-31 10:59:16
不,你的理解是错误的。您可以使用任何版本,您的应用程序将运行在Windows 10和Windows 11上。
详细说明:
让我们从用户的角度看一看
当您下载软件时,您需要多久选择一次正确的操作系统?不经常。因此,在某种程度上,SDK版本似乎并不重要。
让我们从Microsoft的角度来看
微软是否希望所有开发人员在发布Windows 11后都需要重建他们的Windows 10程序?当然不会,因为这意味着随着Windows 11的发布,将不会有一个运行在Windows 11上的应用程序,微软甚至无法对Adobe等数百万用户的软件进行内部测试。
让我们从技术的角度来看
Windows提供了Windows的API定义。Windows很老了。而且,由于微软不希望开发人员进行重建,更糟糕的是,让他们修复破坏性的更改,所以微软让API保持了难以置信的稳定。他们不会改变API,他们只会添加新的API方法。
您使用的Windows 在Windows 10中已经存在,在Windows 11中仍然存在,这几乎是100%的可能性。因此,为Windows 10编译的应用程序仍将在Windows 11上工作。
同样,如果您使用Windows 11 API进行编译,并且不使用最新的高级API,那么您的应用程序仍将在Windows 10上工作。
示例
假设您开发了一个管理字体的应用程序。您已经使用了IDWriteFontSet
、IDWriteFontSet2
和IDWriteFontSet3
接口。在Windows 11中,微软增加了IDWriteFontSet4
。只要您不使用该接口并坚持前面的3个接口,您的应用程序就会运行良好。一旦您开始使用IDWriteFontSet4
,您的应用程序可能会在Windows 10上崩溃(可能只在用户调用该功能时才会崩溃,而不是很确定)。
https://stackoverflow.com/questions/72101424
复制相似问题