Windows SDK与Visual Studio的区别

3
我们目前面临VS与Windows SDK冲突的问题,我意识到有些基础性问题我不太明白:
为什么微软会发布两条针对Windows的开发工具线路?我知道WinSDK是免费的,也没有集成开发环境(IDE)- 但为什么要维护两套不同的头文件和库?理论上,WinSDK不应该是VS发布的子集吗?

随着时间的推移,Windows SDK已经发布了多个版本。其中一些与Visual Studio兼容,而其他则是独立的。Visual Studio通常在安装的Windows SDK中使用一个特定的版本。 - Roman R.
2
你发布的链接指的是完全不同的情况。它强调了将外部 SDK(DirectX)移入核心 Windows SDK 时遇到的一些困难。 - IInspectable
正如其他人所指出的,MSVS和Windows SDK本质上是两个不同的产品。像DirectX SDK、Silverlight SDK和Device Driver Kits这样的东西又是不同的产品。问题是什么?也许根本就不是“冲突”? - paulsm4
链接(以及实际问题)正是这种情况,因为我们广泛使用d3dx类型。引用链接: “……D3DX不被视为在Windows 8及更高版本中使用Direct3D的规范API,因此未包含在相应的Windows SDK中。研究与Direct3D API一起工作的替代解决方案。对于遗留项目,例如Windows 7(及更早版本)的DirectX SDK示例,需要执行以下步骤……” 我想说,现在就认为Windows 7是遗留系统还为时过早,但无论如何。我想知道为什么会有那么多人给我负评。有任何一个负评者可以解释一下吗? - Ofek Shilon
我想,Ofek,你的问题并不是很清楚。你没有明确说明你的问题所在。如果你的问题与之前的评论大致相同,那么你已经发布了解决方案的链接。 - IInspectable
我来到这个问题是因为我不确定 dumpbin 是否是 Windows SDK 的一部分(我强烈认为是),还是 Visual Studio 的一部分(似乎是实际情况)。 - René Nyffenegger
1个回答

6

Windows支持使用任何语言或IDE编写的程序。为此,微软发布了一套经典的头文件、库、工具和样例,特定版本的Windows可以使用。

例如,Windows XP、Vista、Windows 7和Windows 8都有各自的SDK。每个SDK都有其自己的头文件集合,尽管实际上每个新的SDK都是前一个版本的超集。

这些头文件可以与任何C/C++编译器一起使用,并且通常会被转换用于其他编程语言(如Delphi等)。

微软的另一个部门生产Visual Studio,拥有自己的发行周期。他们打包头文件和库,但通常不包含工具或样例,仅适用于Visual Studio发布时可用的最新版本的Windows SDK。


上一个的超集还是子集? - Dialecticus
@Dialecticus - 新的SDK包含了之前版本中的所有API。修改后的答案更加清晰明了。 - Eric Brown

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接