мастер классических приложений windows в visual studio

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

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

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

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

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

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

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

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

Источник

Практическое руководство. Использование пакета SDK Windows 10 в классическом приложении Windows

при создании проекта классического Windows рабочего стола в Visual Studio он по умолчанию обращается к пакету SDK для Windows 10. Visual Studio устанавливает версию этого пакета SDK при установке рабочей нагрузки C++ для настольных систем. пакет SDK для Windows 10 поддерживает написание кода для Windows 7 SP1 и более поздних версий. дополнительные сведения о нацеливании на конкретные версии Windows см. в разделе использование Windows заголовков и обновление WINVER и _WIN32_WINNT.

при обновлении существующего проекта можно выбрать один из вариантов: можно использовать целевой Windows SDK, указанный в проекте. также можно перенацелить проект для использования пакета SDK для Windows 10. с помощью пакета SDK для Windows 10 вы получаете преимущества поддержки новейших операционных систем и языковых стандартов.

использование правильного Windows SDK для проекта

начиная с Visual Studio 2015, библиотека среды выполнения C (CRT) была разделена на две части: одна часть, ucrtbase, содержит стандартные функции crt C и Microsoft, которые можно использовать в универсальных Windows приложениях. эта библиотека теперь называется универсальной библиотекой CRT или UCRT и перешла в пакет SDK Windows 10. UCRT содержит множество новых функций, таких как функции C99, которые необходимы для поддержки новейших стандартов языка C++. Другая часть исходной CRT — vcruntime. Он содержит поддержку, запуск и код завершения среды выполнения C, а также все остальное, которые не были отправлены в UCRT. Библиотека vcruntime устанавливается вместе с компилятором и набором средств C++ в Visual Studio. Дополнительные сведения см. в разделе функции библиотеки CRT.

UCRT теперь является системным компонентом, установленным на каждой версии Windows 10. Он также доступен как устанавливаемый компонент для всех более ранних поддерживаемых версий Windows. вы можете использовать Windows 10 SDK для всех поддерживаемых версий Windows. полный список поддерживаемых операционных систем см. в разделе Windows 10 SDK.

чтобы перенацелить проекты на использование пакета SDK для Windows 10 при обновлении версии проекта до Visual Studio 2015, выполните следующие действия.

Изменение целевой платформы для пакета SDK для Windows 10

8,1 в этом контексте относится к пакету SDK для Windows 8.1.

Если этот шаг выполнен успешно, в окне вывода появится следующее сообщение.

Retargeting End: 1 completed, 0 failed, 0 skipped

Откройте диалоговое окно Свойства проекта. в разделе свойства конфигурации > общие обратите внимание на значения Windows версия целевой платформы. Изменение значения на данном этапе действует аналогично данной процедуре. Дополнительные сведения см. в разделе Страница свойств «Общие» (проект).

нажмите кнопку макросы >> и прокрутите список макросов до Windows SDK макросов, чтобы просмотреть все новые значения.

При необходимости повторите процедуру перенаправления для других проектов решений и перестройте решение.

Изменение целевой платформы для пакета SDK для Windows 8.1

Откройте контекстное меню узла проекта в обозреватель решений и выберите пункт перенацелить проекты. (в более ранних версиях Visual Studio выберите изменить целевую версию пакета SDK.)

В раскрывающемся списке Версия целевой платформы выберите 8,1.

Источник

Настройка классического приложения для упаковки с помощью MSIX в Visual Studio

Для создания пакета для классического приложения в Visual Studio можно использовать Проект упаковки приложений Windows. Затем вы можете распространить пакет в Microsoft Store, в Интернете, на своем предприятии или с помощью любого другого механизма распространения.

Требуемая версия и рабочая нагрузка Visual Studio

Проект упаковки приложений Windows доступен в приведенных ниже версиях Visual Studio.

Чтобы шаблон проекта упаковки приложений Windows отобразился в меню «Добавление проекта», убедитесь, что у вас установлена хотя бы одна из следующих рабочих нагрузок Visual Studio:

Для оптимальной работы рекомендуем использовать последний выпуск Visual Studio.

Проект упаковки приложений Windows в Visual Studio поддерживается в Windows 10 версии 1607 и более поздних версиях. Его можно использовать только в проектах, предназначенных для юбилейного обновления Windows 10 (10.0; сборка 14393) или более поздней версии.

Ниже приведены некоторые другие действия, которые можно выполнить в проекте упаковки приложений Visual Studio.

✔️ Автоматическое создание визуальных ресурсов.

✔️ Внесение изменений в манифест с помощью визуального конструктора.

✔️ Создание пакета или набора с использованием мастера.

✔️ (При публикации в Microsoft Store) Простое назначение приложению идентификатора на основе имени, уже зарезервированного в Центре партнеров.

Подготовьте свое приложение

Прежде чем приступить к созданию пакета для приложения, ознакомьтесь с этим руководством. Prepare to package a desktop application (Подготовка к упаковке классического приложения).

Установите Проект упаковки приложения Windows в свое решение.

Приведенные ниже снимки экрана относятся к Visual Studio 2019 16.10.

В Visual Studio откройте решение, содержащее проект вашего классического приложения.

Добавьте Проект упаковки приложения Windows в свое решение.

Вам не потребуется добавлять в него какой-либо код. Он используется только для создания пакета. Мы будем называть этот проект «проектом упаковки».

Задайте целевую версию проекта (любую), но для параметра Минимальная версия укажите значение Юбилейное обновление Windows 10 или более позднюю версию.

Выберите пакет классического приложения и нажмите кнопку ОК.

В пакет можно включить несколько классических приложений, однако, когда пользователи выбирают плитку с вашим приложением, запустить можно только одно из них. В узле Приложения щелкните правой кнопкой мыши приложение, которое пользователи должны запускать, выбирая плитку приложения, и выберите Задать как точку входа.

Соберите проект упаковки, чтобы убедиться, что ошибок нет. При возникновении ошибок откройте Диспетчер конфигурации и убедитесь, что проекты предназначены для той же платформы.

Дальнейшие действия

Упаковка классического приложения в Visual Studio

См. статью Package a desktop or UWP app in Visual Studio (Упаковка классического приложения или приложения UWP в Visual Studio)

Запуск, отладка и тестирование классических приложений

Дополнительные ресурсы

Видео

Call UWP APIs in desktop apps (Вызов API UWP в классических приложениях)

Улучшение классического приложения путем добавления проектов UWP и компоненты среды выполнения Windows

См. в статье Extend your desktop app with modern UWP components (Улучшение классических приложений с помощью современных компонентов UWP).

Распространение приложения

См. статью Distribute your packaged desktop app (Распространение упакованного классического приложения)

Источник

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

мастер Windows Desktop заменил мастер приложений Win32 в Visual Studio 2017 и более поздних версиях. Мастер позволяет создавать любые из четырех типов проектов C++ (перечисленных в заголовке в таблице ниже). В каждом случае можно указать дополнительные параметры, подходящие для открытого вами типа проекта.

В таблице ниже показано, какие параметры доступны для каждого типа приложения.

Тип поддержки Консольное приложение Исполняемое приложение (Windows) Библиотека динамической компоновки Статическая библиотека
Пустой проект Да Да Да Нет
Символы экспорта Нет Нет Да Нет
Предкомпилированный заголовок Нет Нет Нет Да
поддержка ATL Да Нет Нет Нет
поддержка MFC Да Нет Нет Да

Обзор

На этой странице мастера описываются текущие параметры проекта для создаваемого приложения Win32. По умолчанию заданы следующие параметры:

проект является приложением Windows;

проект не содержит символов экспорта;

проект не использует файл предкомпилированного заголовка (этот параметр доступен только для проектов статической библиотеки);

проект не включает поддержку MFC и ATL.

Тип приложения

Создает указанный тип приложения.

Можно добавить поддержку MFC и ATL в консольное приложение. приложение Windows Создает программу Win32. Программа Win32 — это исполняемое приложение (EXE), написанное на C или C++, с использованием вызовов API Win32 для создания графического пользовательского интерфейса.

невозможно добавить поддержку MFC или ATL в приложение Windows. Библиотека динамической компоновки Создает библиотеку динамической компоновки Win32 (DLL). DLL-библиотека Win32 — это двоичный файл, написанный на языке C или C++, который использует вызовы API Win32, а не классы MFC, который выступает в качестве общей библиотеки функций, которые могут одновременно использоваться несколькими приложениями.

нельзя добавить поддержку mfc или ATL в приложение dll, созданное с помощью этого мастера, но можно создать библиотеку dll mfc, выбрав New > Project > MFC dll. Статическая библиотека Создает статическую библиотеку. Статическая библиотека — это файл, содержащий объекты и их функции и данные, которые связываются с программой при создании исполняемого файла. В этом разделе объясняется, как создать начальные файлы и Свойства проекта для статической библиотеки. Файл статической библиотеки предоставляет следующие преимущества.

— Статическая библиотека Win32 полезна, если приложение, над которым вы работаете, выполняет вызовы к API Win32, а не к классам MFC.
— процесс связывания одинаков независимо от того, пишется ли остальная часть приложения Windows на языке C или C++.
— Можно связать статическую библиотеку с программой на основе MFC или с программой, отличной от MFC.

Дополнительные параметры

Определяет поддержку и параметры для приложения в зависимости от его типа.

Параметр Описание
Пустой проект Указывает, что файлы проекта пусты. При наличии набора файлов исходного кода (например, CPP-файлов, файлов заголовков, значков, панелей инструментов, диалоговых окон и т. д.) и необходимости создания проекта в среде разработки Visual C++ необходимо сначала создать пустой проект, а затем добавить файлы в проект.

Добавьте общие заголовки для:

Добавлена поддержка одной из библиотек, представленных в Visual C++.

Параметр Описание
ATL Встраивает в проект поддержку для классов в библиотеке активных шаблонов (ATL). Только для консольных приложений Win32.

Remarks

Создав классическое приложение Windows, можно добавить универсальные классы C++ с помощью мастера универсального кода. Можно добавить другие элементы, такие как файлы HTML, файлы заголовков, ресурсы или текстовые файлы.

Классы ATL добавить нельзя, а классы MFC можно добавить только в те типы классических приложений Windows, которые поддерживают MFC (см. предыдущую таблицу).

Источник

пошаговое руководство. создание традиционного Windows классического приложения (C++)

в этом пошаговом руководстве показано, как создать традиционное Windows классическое приложение в Visual Studio. в примере приложения, которое вы создадите, будет использоваться Windows API для вывода «Hello, Windows desktop!». «Hello, World!». Код, созданный в этом пошаговом руководстве, можно использовать в качестве шаблона для создания других классических приложений Windows.

Для краткости в тексте пропущены некоторые операторы кода. В разделе Построение кода в конце документа показан полный код.

Предварительные требования

Компьютер под управлением Microsoft Windows 7 или более поздних версий. Для обеспечения оптимальной среды разработки рекомендуется использовать Windows 10.

Базовые значения об использовании интегрированной среды разработки Visual Studio. Если вы уже использовали классические приложения для Windows, вы, вероятно, справитесь. Общие сведения см. в обзоре возможностей интегрированной среды разработки Visual Studio.

Основные навыки владения языком C++. Не волнуйтесь, мы не будем делать ничего сложного.

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

чтобы создать первый проект Windows desktop, выполните следующие действия. в процессе работы вы вводите код рабочего Windows приложения. Чтобы ознакомиться с документацией по предпочтительной версии Visual Studio, используйте селектор Версия. Он находится в верхней части оглавления на этой странице.

создание проекта Windows desktop в Visual Studio 2019

В главном меню выберите Файл > Создать > Проект, чтобы открыть диалоговое окно Создание проекта.

в верхней части диалогового окна задайте для параметра язык значение C++, задайте для параметра платформа значение Windows и задайте для параметра Project тип значение рабочий стол.

Нажмите кнопку Создать, чтобы создать проект.

В диалоговом окне Добавление нового элемента выберите Файл C++ (.cpp). В поле имя введите имя файла, например хелловиндовсдесктоп. cpp. Нажмите кнопку Добавить.

Visual C и плюсом, а также параметр файла c плюсом/с выделенным.» title=»Добавить CPP файл в Десктопапп Project» data-linktype=»relative-path»>

Теперь проект создан и исходный файл открыт в редакторе. Чтобы продолжить, перейдите к созданию кода.

создание проекта Windows desktop в Visual Studio 2017

В меню Файл выберите команду Создать, а затем пункт Проект.

в левой области диалогового окна создание Project разверните узел установленные > Visual C++ и выберите пункт Windows рабочий стол. в средней области выберите мастер рабочего стола Windows.

В поле имя введите имя проекта, например десктопапп. Нажмите кнопку ОК.

Visual C плюс плюс > Windows рабочего стола, выбранный параметр «мастер настольных систем Windows» и десктопапп введено в текстовом поле «имя».» title=»Назовите проект Десктопапп.» data-linktype=»relative-path»>

в диалоговом окне Windows рабочего стола Project в разделе тип приложения выберите Windows приложение (.exe). В поле Дополнительные параметры выберите Пустой проект. Убедитесь, что предварительно скомпилированный заголовок не выбран. Нажмите кнопку ОК, чтобы создать проект.

В диалоговом окне Добавление нового элемента выберите Файл C++ (.cpp). В поле имя введите имя файла, например хелловиндовсдесктоп. cpp. Нажмите кнопку Добавить.

Visual C и плюсом, а также параметр файла c плюсом/с выделенным.» title=»Добавить CPP файл в Десктопапп Project» data-linktype=»relative-path»>

Теперь проект создан и исходный файл открыт в редакторе. Чтобы продолжить, перейдите к созданию кода.

создание проекта Windows desktop в Visual Studio 2015

В меню Файл выберите команду Создать, а затем пункт Проект.

в левой области диалогового окна создание Project разверните узел установленные > шаблоны > Visual C++, а затем выберите пункт Win32. В средней области выберите шаблон Проект Win32.

В поле имя введите имя проекта, например десктопапп. Нажмите кнопку ОК.

> Visual C плюс плюс > win32, выделенный параметр win32 Project и десктопапп, введенные в текстовом поле имя.» title=»Назовите проект Десктопапп.» data-linktype=»relative-path»>

На странице Обзор мастера приложений Win32 нажмите кнопку Далее.

на странице Параметры приложений в разделе тип приложения выберите Windows приложение. В разделе Дополнительные параметры снимите флажок предкомпилированный заголовок, а затем выберите пустой проект. Чтобы создать проект, нажмите кнопку Готово.

В Обозреватель решений щелкните правой кнопкой мыши проект десктопапп, выберите Добавить, а затем выберите новый элемент.

В диалоговом окне Добавление нового элемента выберите Файл C++ (.cpp). В поле имя введите имя файла, например хелловиндовсдесктоп. cpp. Нажмите кнопку Добавить.

Visual C и плюсом, а также параметр файла c плюсом/с выделенным.» title=»Добавить CPP файл в Десктопапп Project» data-linktype=»relative-path»>

Теперь проект создан и исходный файл открыт в редакторе.

Создание кода

далее вы узнаете, как создать код для Windows классического приложения в Visual Studio.

Запуск классического приложения Windows

точно так же, как у каждого приложения C и C++ должна быть main функция в качестве начальной точки, каждое Windows классическое приложение должно иметь WinMain функцию. WinMain имеет следующий синтаксис:

Сведения о параметрах и возвращаемом значении этой функции см. в разделе WinMain Entry Point.

Дополнительные сведения см. в разделе Процедуры окна.

Добавление функциональных возможностей в функцию WinMain

Дополнительные сведения о полях приведенной выше структуры см. в разделе вндклассекс.

зарегистрируйте WNDCLASSEX Windows, чтобы он знал о вашем окне и способах отправки в него сообщений. Воспользуйтесь функцией RegisterClassEx и передайте структуру класса окна в качестве аргумента. Этот _T макрос используется, так как мы используем TCHAR тип.

на этом этапе окно было создано, но нам по-прежнему нужно сообщить Windows, чтобы сделать его видимым. Вот что делает этот код:

для обработки сообщений сначала нужно добавить цикл обработки сообщений для прослушивания сообщений, которые Windows отправляет. Когда приложение получает сообщение, этот цикл отправляет его в вашу WndProc функцию для обработки. Цикл обработки сообщений напоминает приведенный ниже код.

Дополнительные сведения о структурах и функциях, используемых в цикле обработки сообщений, см. в разделах, посвященных MSG, GetMessage, TranslateMessageи DispatchMessage.

На этом этапе функция WinMain должна напоминать приведенный ниже код.

Добавление функциональных возможностей в функцию WndProc

Одно важное сообщение для обработчика — WM_PAINT сообщение. Приложение получает сообщение, WM_PAINT когда часть его отображаемого окна необходимо обновить. Это событие может возникать, когда пользователь перемещает окно перед окном, а затем снова перемещает его. Приложение не знает, когда происходят эти события. только Windows знает, поэтому оно уведомляет ваше приложение с WM_PAINT сообщением. При первом отображении окна его все должно быть обновлено.

Для обработки сообщения WM_PAINT сначала вызовите метод BeginPaint, далее обработайте логику расположения текста, кнопок и других элементов управления в окне, а затем вызовите метод EndPaint. для приложения логика между начальным вызовом и завершающим вызовом отображает строку «Hello, Windows desktop!» «Hello, World!». В следующем коде функция Text используется для вывода строки.

HDC в коде — это обработчик контекста устройства, который используется для рисования в клиентской области окна. Используйте BeginPaint функции и EndPaint для подготовки и завершения рисования в клиентской области. BeginPaint Возвращает маркер контекста устройства отображения, используемый для рисования в клиентской области. EndPaint завершает запрос на рисование и освобождает контекст устройства.

Сборка кода

Как обещано, вот полный код для рабочего приложения.

Сборка примера

Удалите код, введенный в хелловиндовсдесктоп. cpp в редакторе. Скопируйте этот пример кода и вставьте его в хелловиндовсдесктоп. cpp:

В меню Построение выберите Построить решение. Результаты компиляции должны появиться в окне вывод в Visual Studio.

Чтобы запустить приложение, нажмите клавишу F5. окно, содержащее текст «Hello, Windows desktop!» должно отображаться в левом верхнем углу экрана.

Поздравляем! вы выполнили это пошаговое руководство и создали традиционное Windows классическое приложение.

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • мастер импорта сертификатов windows 10 где находится
  • мастер импорта сертификатов windows 7 введенный пароль неправилен
  • мастер импорта изображений и видео windows
  • мастер загрузки windows 10
  • мастер забытых паролей windows 10

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии