为了开发windows程序,我们需要windows SDK。 我明白,这个SDK是什么帮助创build窗口和处理窗口事件等等。 我想这也使我们能够操纵文件和registry。 (相同的SDK是线程创build和处理的原因吗?)
一切都好!
我想知道什么是作为这个SDK的一部分的文件和库。 还有,当我安装操作系统或当我安装编辑器像Visual Studio? 有时我会分开看到与windows SDK的链接。 这与我在安装Visual Studio时所得到的一样,还是不止如此。
SDK代表软件开发工具包 。 它是开发人员用来构建软件的头文件,库,工具和其他零碎的大集合。 微软为其大量产品提供了许多SDK,通常不会将其部署到最终用户的桌面。 它们通常只安装在开发者机器上,或者作为Visual Studio开发环境的一部分,或者单独安装(但通常用于VS内部)。
当你谈论处理窗口,线程等的东西时,你正在描述Windows API。 SDK的目的是允许开发人员编写访问API的软件。
作为开发人员,Windows SDK使您可以访问Windows平台的所有服务,包括列出的所有内容。
SDK是作为Visual Studio安装的一部分安装的,通常您将使用随编译器一起提供的SDK,而不必担心。 独立的SDK下载可以支持两种情况:
如果您使用Visual Studio以外的其他编译器,则可能不包含SDK文件,因此您可以单独下载它们。
Windows的每个新版本在API中都包含更多功能,因此为了调用这些新功能,您需要更新SDK。
Base Services:
提供对Windows系统可用的基本资源的访问。 包括类似的东西
这些函数驻留在32位Windows上的kernel32.dll中。
Advanced Services:
提供对内核功能的访问。 包括像
这些函数驻留在32位Windows上的advapi32.dll中。
Graphics Device Interface:
提供输出图形内容的功能
它驻留在用户模式下的32位Windows上的gdi32.dll。 内核模式GDI支持由win32k.sys提供,直接与图形驱动程序通信。
User Interface:
提供创建和管理屏幕窗口和大多数基本控制的功能,例如
这个功能单元驻留在32位Windows上的user32.dll中。 由于Windows XP版本,基本控件驻留在comctl32.dll,以及常见的控件(公共控制库)。
Common Dialog Box Library:
为应用程序提供标准对话框
该库驻留在32位Windows上的comdlg32.dll中。 它被分组在API的用户界面类别下。
Common Control Library:
使应用程序可以访问操作系统提供的一些高级控件。 这些包括像
该库驻留在32位Windows上的comctl32.dll中。 它被分组在API的用户界面类别下。
Windows Shell:
Windows API的组件允许应用程序访问
该组件驻留在32位Windows上的shell32.dll中。 Shell Lightweight Utility函数在shlwapi.dll中。 它被分组在API的用户界面类别下。
Network Services:
访问操作系统的各种网络功能。 其子组件包括
RPC等等。
Internet Explorer Web浏览器API:
我只列出了32位窗口的文件(因为这是许多窗口开发人员的工作)
欲了解更多信息,请查看http://en.wikipedia.org/wiki/Windows_API
编辑:上面的DLL和所有的操作系统,而不是SDK的一部分。 Windows SDK提供了导入库(.lib文件),允许代码动态链接到这些系统提供的DLL。 (马塞洛·坎托斯(Marcelo Cantos)正确地指出了这一点,非常感谢他)