Классические приложения (Visual C++)

классическое приложение на C++ — это собственное приложение, которое имеет доступ к полному набору интерфейсов Windows api и запускается в окне или в системной консоли. настольные приложения на C++ могут работать в Windows xp с помощью Windows 11 (хотя Windows xp более официально не поддерживается и существует множество api-интерфейсов Windows, которые появились с момента этого).

классическое приложение отличается от приложения универсальная платформа Windows (UWP), которое может выполняться на компьютерах под управлением Windows 11, Windows 10, XBox, Windows Phone, Surface Hub и других устройств. Дополнительные сведения о настольных и универсальных приложениях UWP см. в статье Выбор технологии.

Мост для классических приложений

в Windows 10 и более поздних версиях можно упаковать существующее классическое приложение или COM-объект в качестве приложения UWP. приложения могут добавлять функции UWP, например сенсорный ввод, или вызывать api из современного набора api Windows. можно также добавить приложение UWP в решение для настольных систем в Visual Studio и упаковать их вместе в одном пакете и использовать интерфейсы Windows api для взаимодействия между ними.

в Visual Studio 2017 версии 15,4 и более поздних версиях можно создать Windows пакет приложения Project, чтобы значительно упростить работу по упаковке существующего настольного приложения. В отношении того, какие вызовы реестра или API-интерфейсы используются настольным приложением, применяются некоторые ограничения, но во многих случаях можно создать альтернативные пути кода для обеспечения аналогичной функциональности при работе в пакете приложения. Дополнительные сведения см. в статье Мост для классических приложений.

Терминология

  • приложение Win32 — это Windows классическое приложение на языке C++, которое может использовать Windows собственные api -интерфейсы C и (или ) api COM и api библиотеки стандартных библиотек, а также сторонние библиотеки. приложение Win32, выполняемое в окне, требует, чтобы разработчик работал явно с Windows сообщениями внутри функции Windows процедуры. Несмотря на имя, приложение Win32 можно скомпилировать 32 как 64-разрядный (x86) или 64-разрядный (x64) двоичный файл. в Visual Studio IDE термины x86 и Win32 являются синонимами.

  • Модель COM — это спецификация, которая позволяет программам, написанным на разных языках, взаимодействовать друг с другом. многие компоненты Windows реализуются как com-объекты и следуют стандартным правилам COM для создания объектов, обнаружения интерфейсов и уничтожения объектов. Использование объектов COM из классических приложений C++ относительно просто, но написание собственного COM-объекта является более сложным. Библиотека активных шаблонов (ATL) предоставляет макросы и вспомогательные функции, УПРОЩАЮЩИЕ разработку com.

  • приложение MFC — это Windows классическое приложение, которое использует Microsoft Foundation Classes для создания пользовательского интерфейса. Приложение MFC также может использовать компоненты COM, а также API CRT и библиотеки стандартных библиотек. MFC предоставляет объектно-ориентированную оболочку с тонким C++ для циклов оконных сообщений и Windows api. MFC является выбором по умолчанию для приложений (особенно приложений корпоративного типа), которые имеют множество элементов управления пользовательского интерфейса или пользовательских элементов управления. MFC предоставляет удобные вспомогательные классы для управления окнами, сериализации, обработки текста, печати и современных элементов пользовательского интерфейса, таких как лента. Для эффективной работы с MFC вы должны быть знакомы с Win32.

  • Приложение или компонент C++/CLI использует расширения для синтаксиса C++ (как это разрешено стандартом C++), чтобы обеспечить взаимодействие между .NET и машинным кодом C + +. приложение C++/cli может содержать части, работающие в собственном коде, и части, которые выполняются в платформа .NET Framework с доступом к библиотеке базовых классов .net. C++/CLI является предпочтительным вариантом при наличии машинного кода C++, который должен работать с кодом, написанным на C# или Visual Basic. Он предназначен для использования в библиотеках DLL .NET, а не в коде пользовательского интерфейса. Дополнительные сведения см. в статье Программирование .NET с использованием C++/CLI (Visual C++).

любое классическое приложение в C++ может использовать среду выполнения C (CRT), классы и функции стандартной библиотеки, COM-объекты и открытые функции Windows, которые вместе называются Windows API. общие сведения о Windows классических приложениях на c++ см. в разделе Начало работы с Win32 и C++.

Содержание раздела

Заголовок Описание
Консольные приложения Windows (C++) Содержит сведения о консольных приложениях. Консольное приложение Win32 (или Win64) не имеет собственного окна и цикла обработки сообщений. Оно выполняется в окне консоли, а ввод и вывод обрабатываются через командную строку.
Пошаговое руководство. Создание классических приложений Windows (C++) создание простого Windows классического приложения.
Создание пустого классического приложения Windows создание проекта Windows desktop без файлов по умолчанию.
Добавление файлов в пустые приложения Win32 Добавление файлов в пустой проект.
Работа с файлами ресурсов Добавление изображений, значков, таблиц строк и других ресурсов в классическое приложение.
Ресурсы для создания игры с использованием DirectX (C++) Ссылки на материалы по созданию игр на C++.
Пошаговое руководство: Создание и использование статической библиотеки Создание двоичного файла с расширением LIB.
как использовать Windows SDK в Windows приложении для настольных компьютеров содержит шаги по настройке проекта для построения с помощью Windows SDK.
Заголовок Описание
Разработка для Windows Содержит сведения об API Windows и COM. (Некоторые API-интерфейсы Windows и сторонние библиотеки DLL реализованы в виде объектов COM).
Hilo: разработка приложений C++ для Windows 7 Описание способов создания классического приложения Windows, использующего анимацию Windows и Direct2D для создания интерфейса пользователя по принципу карусели. этот учебник не был обновлен с момента Windows 7, но он по-прежнему предоставляет исчерпывающие сведения о программировании Win32.
общие сведения о программировании Windows в C++ описание основных возможностей программирования Windows настольных систем на C++.

См. также раздел

C++ в Visual Studio