桌面应用程序 (Visual C++)

C++ 中的桌面应用程序是一个本机应用程序,可以访问完整的 Windows API 集,可以在窗口或系统控制台中运行。 C++ 中的桌面应用程序可以通过 Windows 11 (在 Windows XP 上运行,尽管 Windows XP 不再受到官方支持,并且自) 以来引入了许多 Windows API。

桌面应用程序不同于 通用 Windows 平台 (UWP) 应用,该应用可以在运行 Windows 11、Windows 10、XBox、Windows Phone、Surface Hub 和其他设备的 PC 上运行。 有关桌面与 UWP 应用程序的信息,请参阅 选择技术

桌面桥

在 Windows 10 及更高版本中,可以将现有桌面应用程序或 COM 对象打包为 UWP 应用。 应用可以添加 UWP 功能(如触摸)或从新式 Windows API 集调用 API。 还可以将 UWP 应用添加到 Visual Studio 中的桌面解决方案,将它们打包到单个包中,并使用 Windows API 在它们之间进行通信。

在 Visual Studio 2017 版本 15.4 及更高版本中,可以创建 Windows 应用程序包 Project 以大大简化打包现有桌面应用程序的工作。 桌面应用程序使用的注册表调用或 API 有一些限制,但在许多情况下,可以在应用包中运行时创建备用代码路径来实现类似的功能。 有关详细信息,请参阅桌面桥

术语

  • Win32 应用程序是 C++ Windows桌面应用程序,可以使用本机 Windows C API 和/或 COM API CRT 和标准库 API 以及第三方库。 在窗口中运行的 Win32 应用程序要求开发人员显式处理Windows函数Windows消息。 不管名称如何,Win32 应用程序都可以编译为 32 位 (x86) 或 64 位 (x64) 二进制文件。 在 IDE Visual Studio,术语 x86 和 Win32 是同义词。

  • 组件对象模型 (COM) 是一个规范,它使用不同语言编写的程序能够相互通信。 许多Windows组件作为 COM 对象实现,并遵循标准 COM 规则创建对象、接口发现和对象销毁。 从 C++ 桌面应用程序使用 COM 对象相对简单,但编写自己的 COM 对象更高级。 ACTIVE Template Library (ATL) 提供宏和帮助程序函数,用于简化 COM 开发。

  • MFC 应用程序是Windows创建用户界面的Microsoft 基础类桌面应用程序。 MFC 应用程序还可使用 COM 组件以及 CRT 和标准库 API。 MFC 在窗口消息循环上提供一个精简的 C++ 面向对象的包装器,Windows API。 MFC 是具有大量用户界面控件或自定义用户控件的应用程序(尤其是企业类型应用程序)的默认选择。 MFC 为窗口管理、序列化、文本操作、打印和新式用户界面元素(如功能区)提供了方便的帮助程序类。 若要有效使用 MFC,应熟悉 Win32。

  • C++/CLI 应用程序或组件使用 C++ 语法扩展 (C++ 标准) 允许的扩展来启用 .NET 和本机 C++ 代码之间的交互。 C++/CLI 应用程序可以具有本机运行的部件和在 .NET Framework可访问 .NET 基类库的部件。 如果本机 C++ 代码需要处理用 C# 或代码编写的代码,则 C++/CLI 是首选Visual Basic。 它适用于 .NET DLL 而不是用户界面代码。 有关详细信息,请参阅使用 C++/CLI 进行 .NET 编程 (Visual C++)

C++ 中的任何桌面应用程序都可以使用 C 运行时 (CRT) 以及标准库类和函数、COM 对象以及公共 Windows 函数(统称为 Windows API)。 有关 C++ Windows桌面应用程序的简介,请参阅入门 Win32 和 C++ 集成

本节内容

Title 说明
C++ 中的 Windows 控制台应用程序 包含有关控制台应用的信息。 Win32(或 Win64)控制台应用程序本身不具有窗口,且不使用消息循环。 它在控制台窗口中运行,并通过命令行处理输入和输出。
演练:创建 Windows 桌面应用程序 (C++) 创建简单的Windows桌面应用程序。
创建空的 Windows 桌面应用程序 如何创建Windows没有默认文件的桌面项目。
向空的 Win32 应用程序添加文件 如何将文件添加到空项目。
使用资源文件 如何将图像、图标、字符串表和其他资源添加到桌面应用程序。
有关使用 DirectX 创建游戏的资源 (C++) 指向在 C++ 中创建游戏的内容的链接。
演练:创建和使用静态库 如何创建 .lib 二进制文件。
如何:在 Windows 桌面应用程序中使用 Windows SDK 包含使用 Windows SDK 设置项目Windows步骤。
Title 说明
Windows 开发 包含有关 Windows API 和 COM 的信息。 (某些 Windows API 和第三方 DLL 是作为 COM 对象实现的。)
Hilo:开发适用于 Windows 7 的 C++ 应用程序 描述如何创建使用 Windows Animation 和 Direct2D 创建基于传送的用户界面的、客户端丰富的 Windows 桌面应用程序。 本教程自 7 Windows以来未更新,但仍全面介绍了 Win32 编程。
C++ Windows编程概述 介绍 C++ Windows桌面编程的主要功能。

另请参阅

Visual Studio 中的 C++