# Windows API 简介

> 原文： [http://zetcode.com/gui/winapi/introduction/](http://zetcode.com/gui/winapi/introduction/)

这是 Windows API 教程。 本教程将教您使用 C 编程语言进行 Windows API 编程的基础知识和更高级的主题。 它不涵盖 MFC。 （Microsoft 基础类是一个广泛使用的 C++ 库，用于在 Windows 上开发 C++ 应用。）本教程已在 Windows 7 上创建并经过测试。示例使用 Pelles C 编译器构建。如果您打算阅读本教程，建议您下载并安装此编译器。 （这是一个免费软件。）如果要使用其他编译器，请确保它支持 C99 标准。

## Windows API

Windows API 是用于创建 Windows 应用的应用编程接口。 为了创建 Windows 应用，我们必须下载 Windows SDK。 （以前称为 Platform SDK。）SDK（软件开发工具包）包含使用 Windows API 开发应用的头文件，库，示例，文档和工具。 Windows API 是为 C 和 C++ 编程语言创建的。 这是创建 Windows 应用的最直接方法。 （如果我们安装 Pelles C，则已经包含 Windows SDK。）

Windows API 可以分为几个区域：

*   基础服务
*   安全
*   图形
*   用户界面
*   多媒体
*   Windows 外壳
*   互联网

基本服务提供对 Windows 上基本资源的访问。 这些包括文件系统，设备，进程，线程，注册表或错误处理。安全区域提供功能，接口，对象和其他编程元素，用于认证，授权，加密和其他与安全相关的任务。图形子系统提供了将图形内容输出到监视器，打印机和其他输出设备的功能。用户界面提供创建窗口和控件的功能。多媒体组件提供了用于处理视频，声音和输入设备的工具。 Windows Shell 界面的功能允许应用访问操作系统外壳提供的功能。网络服务提供对 Windows OS 网络功能的访问。

Windows API 是 Windows 操作系统编程接口的抽象规范。 它由函数，联合，结构，数据类型，宏，常量和其他编程元素的声明组成。 Windows API 主要由 MSDN（Microsoft 开发者网络）描述，并且位于 Windows C 标头中。 Windows API 函数的正式实现位于动态库（DLL）中。 例如，Windows 系统目录中的`kernel32.dll`，`user32.dll`，`gdi32.dll`或`shell32.dll`。 Windows API 有第三方实现：最著名的是 Wine 项目和 ReactOS 项目。

Windows API 是一个动态实体。 随着 Windows OS 的每个新版本和新 Service Pack 的出现，功能数量不断增加。 服务器版本和操作系统的桌面版本之间也存在一些重要区别。 某些功能尚未正式记录。

## Pelles C

Pelles C 是用于 C 编程语言的出色 C 编译器和集成开发环境（IDE）。 它同时支持 32 位 Windows（x86）和 64 位 Windows（x64）。 它实现了 C99 和 C11 标准。 Pelles C 具有集成的资源编辑器，位图，图标和光标编辑器以及十六进制转储编辑器。 它由瑞典开发商 Pelle Orinius 开发。 它带有 Windows SDK，因此我们可以立即开始创建 Windows 应用，而无需进行进一步的安装。

Pelles C 是免费软件。 我们可以从以下链接下载 Pelles C： [Pelles C 下载](http://www.smorgasbordet.com/pellesc/)。

## 没有目标架构的错误

为了创建 Windows API 程序，我们必须启用 Microsoft 扩展。 默认情况下未启用它们。 因此，编译器将产生以下错误消息：`fatal error #1014: #error: "No target architecture"`。 要启用 Microsoft 扩展，我们转到项目选项，然后选择“编译器”选项卡。 在此选项卡中，我们选中“启用 Microsoft 扩展”框。

## MSDN

MSDN（Microsoft 开发者网络）是 Windows 开发的中央门户。 它是与使用 Microsoft 工具开发 Windows 应用有关的大量材料。 （不包括 Qt4 或 Java Swing 之类的第三方软件。）它是 Windows API 的最完整参考。 以下两个链接是 Windows API 参考的良好入口点：[桌面应用开发文档](http://msdn.microsoft.com/en-us/library/windows/desktop/hh447209(v=vs.85).aspx)和 [Windows API 列表](http://msdn.microsoft.com/en-us/library/windows/desktop/ff818516(v=vs.85).aspx)。

本章是 Windows API 的简介。