我需要Windows SDK和.NET是做什么的?

21

我是一名学生,在学习了一些Java、C等编程入门课程后,并刚刚完成了一本关于C++的书,我想开始开发Windows应用程序。

我已经尽力在谷歌上查找并找到我需要的答案,但似乎没有头绪。

我什么时候需要使用Windows SDK而不是普通的API呢? .NET是什么,我为什么需要它? C#有什么特别之处,我应该使用它而不是C/C++吗?


2
+1 - 建议将此设为社区维基。 - Steve Townsend
2个回答

28
什么时候需要Windows SDK而不仅仅是常规API?
SDK包含头文件、库、工具等,使您可以访问API(以及.NET)。例如,典型的基于API的程序将以#include <windows.h>开头——但是如果没有SDK,您就没有一个要包括的Windows.h副本。同样,SDK包括编译器(与当前版本的Visual C++中包含的实际编译器相同)、链接器、调试器等,这些都是构建基于API的程序所必需的。
什么是.NET?为什么我需要它?
.NET有几方面:一种运行"中间语言"(IL)代码的虚拟机,以及包含大量IL代码的库,用于窗口管理和绘图、通信、系统管理等等。
如果你正在使用基于.NET的语言编写代码,比如C#、VB.NET等,那么你需要它。
C#有什么特别之处?我应该选择它而不是C/C++吗?
C#是.NET开发中首选的语言。微软确实开发了.NET版本的Visual BASIC和类似于C++的东西,但两者都往往落后于C#。
因此,如果您正在专门为Windows开发代码(特别是包括GUI),那么C#可能是您的首选。Microsoft在支持它方面做得更多,而不是支持C或C++。这表现在更好的库和工具支持上。
使用C或C++的主要优点可能是,您主要是为Linux开发,并将代码移植到Windows。如果你想,在C#中仍然可以进行这样的开发(例如,你可以在Mono下运行C#和.NET),但是特别是如果你在Linux下进行开发工作,你会失去大部分优势。另一方面,如果你的代码本身不涉及GUI,你可能可以编写可移植的C或C++代码,并在Windows和Linux下进行编译。在这种情况下,使用C#可能需要额外的工作,比如在Linux下安装Mono来运行代码——虽然并不是非常困难的任务,但即使是比较简单的安装也可能比根本不需要安装更加麻烦。

3
+1 - 很好的回答。我认为“月度风味”有点轻视,因为我们现在已经到了.Net 4.0——这不仅仅是微软的一个时尚,而且是他们面向企业开发的战略方向,取代了Win32,除了最专业化的用途外。相比之下,.Net Remoting曾经是“月度风味”,现在他们想让所有人都使用WCF。顺便提一下,Windows SDK将平台SDK和.Net Framework SDK合并成一个包。 - Steve Townsend
@Steve:好的,没问题——已修改。 - Jerry Coffin
1
非常感谢!你的回答非常有帮助! - Andrew Guenther
为什么没有安装.NET Framework就无法安装Windows SDK?我尝试安装SDK,但它停止了并抛出了一个错误,说我缺少一些.NET组件。这是我的问题:http://stackoverflow.com/questions/12446016/problems-with-computer-after-installing-net-framework-is-it-possible-to-instal - Green

-3

Windows SDK是一个专门为Windows开发应用程序的低级框架。您可以使用它进行开发。但是,API是低级别的,有点难以使用和维护。

或者,您可以使用.Net。.Net是一个包括应用程序运行时支持的框架。它有许多包,我相信您会在.Net中找到一些有用的东西。.Net需要运行时才能执行,并且不会原生编译到平台上。但是,由于API更高级别,因此它更易于软件开发。

C#是Windows特定编程的推荐语言,特别是在.Net上。并不是说它是唯一的语言,您也可以使用C/C++,但它们不受Microsoft的积极支持。例如,如果您使用C#,创建GUI应用程序可能只需要几个鼠标点击。使用C++,您需要管理窗口实例。

通常,仅在进行跨平台编程或某些低级别操作时,才会使用C/C++进行Windows编程。


1
通常情况下,如果你正在进行跨平台编程或一些低级别的操作,你才会使用C/C++来进行Windows编程。但我必须反驳这个说法,因为很多人(包括我)广泛地使用C++进行应用程序开发和其他方面的工作。 - In silico
3
同时,"C/C++"并不是一个语言。它们是两种不同的语言。此外,微软积极支持C++。Visual C++团队有自己的博客(blogs.msdn.com/b/vcblog),并发布了Visual C++ 2010,该版本对C++的最新版本C++0x进行了部分支持。如果您熟悉C++,在Windows编程中使用C++完全没有问题。 - In silico
1
Windows SDK是一个专门用于开发Windows应用程序的低级框架。 - In silico
3
@In silico: 我相信他所说的C/C++指的是C或C++。 - Paul
2
@Paul:Visual C++ 是编译器,IDE 是 Visual Studio :) </nitpick> - snemarch
显示剩余8条评论

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