c - WinSDK 7.1 : Getting Started with the Windows SDK Tools for Native Windows app development?

标签 c windows sdk windows-vista

我终于能够在我的 Windows Vista 系统上成功安装 Windows SDK 工具 (v.7.1)。我已经安装了 GCC 编译器,这就是我目前用来编译 C 代码的工具。

我在哪里可以找到 WinSDK 的文档以及我应该如何将其包含在 GCC 中?

我在发行说明或任何内容中找不到任何解释。但是,如果您能找到解释它的内容,请随时给我一个链接。

最佳答案

这对您来说可能听起来很奇怪,但您不需要下载任何单独的 Windows SDK 来为 Windows 开发,因为 Visual Studio、MingW/GCC 和其他软件通常已经包含了大多数人需要的所有内容。 (有些人会说,Visual Studio 和其他工具附带了他们自己的 SDK 版本,但我认为这只会进一步混淆问题。)

您首先需要 Visual Studio。也许有一天,您可能想要将 Windows SDK 添加到它上面,但它并不打算单独使用,也不打算与 GCC 结合使用。 基本上,一些 SDK 内容重复了 Visual C++ 和 Visual Studio 中已经包含的内容,其中一些是附加工具,如 WinDbg

让我解释一下。 Windows SDK 对于在 Windows 中执行初学者不太可能需要执行的某些操作确实很有用。例如,如果您需要与一些专门的 API 集成,Windows SDK 包含大量文档、示例和一组更完整的头文件,这些文件未包含在 Visual Studio 中,因为它们是不太常用的 API。 Windows 的核心 API 头文件和文档已经在 Visual Studio 中,所以从技术上讲,Visual Studio 已经包含了核心 SDK,所谓的 SDK 是一个“辅助 SDK”,或者是“面向纯粹主义者、高级用户和用户的低级 SDK”。某些类型的系统或 native 级编程”,但对于大多数典型的最终用户应用程序开发来说并不是必需的。

但是,如果您想使用 C 或 C++ 学习 Win32 native 编程,或者您只是想编写 native Windows 应用程序,您可能不需要 SDK 中的任何东西,即使那样您首先需要 Visual Studio,然后SDK 第二。让我解释一下:

  1. 许多可让您编写纯 native Windows 应用程序的工具提供更高级别的 API,包括 Visual Studio,它为您提供 MFC 或 ATL。这些工具都不需要 SDK 才能工作。所谓的 SDK 更像是“我们不随 visual studio 一起提供的额外废话,因为几乎没有人需要它”,Microsoft 将其缩写为 SDK。我知道。很奇怪。

  2. 如果您打算使用 GCC,则根本不需要 SDK。如果您想用纯 C 或纯 C++ 编写适用于 Windows 的应用程序,如果您坚持使用 gcc 并在命令行中工作,则只需安装 mingw

  3. 编写 native 应用程序的正常方法是使用免费的 Microsoft Visual C++ Express 版本,您可以使用它来编写 C 或 C++ 应用程序,它包括您几乎需要编写的头文件和库您需要的任何 native Windows 应用程序功能,无需任何 SDK。 Visual Studio 是一个不错的现代 IDE,还有很多方便的很酷的功能,比如代码完成等等。您下载的 SDK 不包含任何内容。

  4. 您可以使用 MSDN 文档的 Web 格式或 Visual Studio 中的帮助了解您需要了解的有关原始 Win32 API 的任何信息。基本的 Windows API(如 WinCreateWindow)已记录在 Visual Studio 帮助和 MSDN 帮助中,您不需要大多数核心 Windows API 的 SDK 文档。

如果您刚刚起步,我是否建议您直接获取免费(但非开源)Visual Studio 2010 Express。这是推荐的入门方式,而不是 SDK。

我很确定您下载的 Windows 7 SDK 无论如何都不适合与 GCC 一起使用,如果您需要一个与 Gnu C/C++ 编译器一起工作的 Windows 头文件版本,任何基本的 Win32 API,例如GDI 和基本的 Windowing API 内容已捆绑在 mingw 中gcc 版本。

您可能还想了解 DDK,它类似于 SDK,但面向设备驱动程序和 native NT 模式开发。

关于c - WinSDK 7.1 : Getting Started with the Windows SDK Tools for Native Windows app development?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9346051/

相关文章:

c - 移动所有线程以使用其他 CPU 核心,以便一个线程可以使用其他 CPU 核心?

c++ - 动态内存分配和内存块元数据

适用于 XP 的 Windows 防火墙规则

iphone - 如何修复此警告 : "Method not found (return type defaults to ' id')"

iphone - 使用 native 共享对话框发布到 Facebook 时出现 IOS 错误 - UICGColorencodeWithCoder

c - 读取代码并计算其中的行数的程序,不包括注释和空行

c malloc 用于二维 char 数组,通过将此数组传递给函数

java - 如何使用 Java 启动 Windows `runas` 进程?

windows - 哪个 python 可以访问 Quantlib 的预编译版本?

java - 在 Android 中使用 Windows Azure 服务总线队列