Как создать проект winapi c в visual studio 2019

Обновлено: 05.07.2024

Создание нового проекта в Visual Studio
Не знаю в какую ветку разместить. Помню, когда учился, мы работали в Visual Studio и я создавал.

Создание проекта в Visual Studio Express 2010
У меня такая проблема:Нужно написать прогу на С++ . Обьясните как это сделать в VS если мне всякие.

Создать проект->Visual C++ ->Проект Win32
После чего нажимаете далее до победного и готово!! Может имеется ввиду редактор диалогов.
1. Добавляете к файлам проекта xxxx.rc файл.
2. Двойным щелчком по нему раскрываете его. Появляется вкладка с ресурсами.
3. Правой кнопкой мыши выбрать "добавить ресурс"
4. Выбрать оттуда Диалог и нажать кнопку "Создать"
Вот пример программы для VS 2008 на базе диалога:
Вложение 487464 Спасибо,посмотрю, а вообще я имел ввиду мне нужно чтобы я сам формочку рисовал и кнопки раскидывал без написания кода для этого Return0, ээээээээээхххххххххх, если бы все было так просто!!

Откройте мой пример, откройте имеющийся там диалог
и расставляйте кнопочки в свое удовольствие по аналогии с тем, что там есть!

Убедитесь, что ничего сложного.
Комментарий по коду

А где можно более подробно узнать про этот диалог и как им именно пользоваться? если именно форм, то проект в CLR, это язык С++/cli работает с NET
по работе похож на шарп, по языку на С++, но есть свои нюансы, и их немало, на данном форуме есть ветка
если нужно создавать диалоги то есть MFC,при двойном щелчке на элемент генерирует код
WinApi все вручную

1. Двойным щелчком по res1.rc раскрываете его. Появляется вкладка с ресурсами.
2. Нажимаете на плюсик радом со словом Dialog.
3. Двойным щелчком по "SIMPLE" открываете диалог в редакторе ресурсов.

Справа будет панель элементов. Из нее выбирайте все что хочется до
Vertical Scrollbar (все что ниже работает только в MFC проекте).

Win32 in Visual Studio 2008
Я в С++ полный ноль, но хотелось бы создать простое приложение с интерфейсом(Button, Label.

Компиляция в среде visual studio 2010
Профи выручайте! Не могу найти кнопку компиляции в визуаль студио 2010, создал файл с расширением.

Программа win32 на visual studio 2008 c++
Как пишется программа под windows на с++ в visual studio 2008 ? что нужно использовать и будут ли.

Вы можете использовать интерфейсы API Composition среды выполнения Windows (также называемые визуальным уровнем) в приложениях Win32, чтобы создавать современные интерфейсы для пользователей Windows 10.

Полный код для этого руководства доступен на сайте GitHub: Пример приложения Win32 HelloComposition.

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

Для использования API размещения для UWP накладываются приведенные ниже предварительные требования.

    Предполагается, что у вас есть опыт разработки приложений с помощью Win32 и UWP. См. также:
      (Приступая к работе с Win32 и C++)

    Как использовать интерфейсы API Composition из классического приложения Win32

    При работе с этим руководством вы создадите простое приложение Win32 на C++ и добавите в него элементы композиции UWP. Основное внимание уделяется правильной настройке проекта, созданию кода взаимодействия и отрисовке простых элементов с помощью интерфейсов API Windows Composition. Завершенное приложение выглядит следующим образом.

    Пользовательский интерфейс выполняющегося приложения

    Создание проекта C++ для Win32 в Visual Studio

    Первым шагом является создание проекта приложения Win32 в Visual Studio.

    Чтобы создать проект приложения Win32 на C++ с именем HelloComposition, сделайте следующее.

    Откройте Visual Studio и выберите Файл > Создать > Проект.

    Появится диалоговое окно Создать проект.

    В категории Установлены разверните узел Visual C++ , а затем выберите Windows Desktop.

    Выберите шаблон Классическое приложение Windows.

    Введите имя HelloComposition, а затем нажмите кнопку ОК.

    Visual Studio создаст проект и откроет редактор для основного файла приложения.

    Настройка проекта для использования интерфейсов API среды выполнения Windows

    Чтобы применить интерфейсы API среды выполнения Windows (WinRT) в приложении Win32, мы используем C++/WinRT. Чтобы добавить поддержку C++/WinRT, необходимо настроить проект Visual Studio.

    В меню Проект откройте свойства проекта (Свойства HelloComposition) и убедитесь, что для следующих параметров заданы указанные значения.

    • Для параметра Конфигурации выберите Все конфигурации. Для параметра Платформа выберите Все платформы.
    • Свойства конфигурации > Общие > Версия Windows SDK = 10.0.17763.0 или более поздняя версия.

    Настройка версии пакета SDK

    Настройка стандарта языка

    • Компоновщик > Ввод > Дополнительные зависимости — этот раздел должен содержать windowsapp.lib. Если эта зависимость отсутствует в списке, добавьте ее.

    Добавление зависимости компоновщика

    Изменение предварительно скомпилированного заголовка

    Переименуйте stdafx.h и stdafx.cpp в pch.h и pch.cpp соответственно.

    Установите для свойства проекта C/C++ > Предварительно скомпилированные заголовки > Предварительно скомпилированный заголовочный файл значение pch.h.

    (Изменить > Найти и заменить > Найти в файлах.)

    Поиск и замена в stdafx.h

    В pch.h добавьте winrt/base.h и unknwn.h .

    На этом этапе рекомендуется выполнить сборку проекта, чтобы убедиться в отсутствии ошибок, прежде чем продолжить.

    Создание класса для размещения элементов композиции

    Чтобы разместить содержимое, созданное с помощью визуального уровня, создайте класс (CompositionHost) для управления взаимодействием и создания элементов композиции. Это потребует выполнить большую часть настройки для размещения интерфейсов API Composition. Потребуется:

    Мы сделаем этот класс singleton, чтобы избежать проблем с потоками. Например, можно создать только одну очередь диспетчера для каждого потока, поэтому создание второго экземпляра CompositionHost в том же потоке вызовет ошибку.

    При необходимости сверьтесь с полным кодом в конце руководства, чтобы убедиться в том, что весь код добавлен в соответствующе места при работе с этим руководством.

    Добавьте новый файл класса в проект.

    • В обозревателе решений щелкните проект HelloComposition правой кнопкой мыши.
    • В контекстном меню выберите Добавить > Класс.
    • В диалоговом окне Добавление класса укажите имя класса, CompositionHost.cs, а затем щелкните Добавить.

    Добавьте заголовки и операторы using, необходимые для взаимодействия композиции.

    Измените класс, чтобы использовать шаблон singleton.

    • В CompositionHost.h сделайте конструктор частным.
    • Объявите общедоступный статический метод GetInstance.
    • В CompositionHost.cpp добавьте определение метода GetInstance.

    В CompositionHost.h объявите частные переменные-члены DispatcherQueueController и DesktopWindowTarget для Compositor.

    Добавьте общедоступный метод для инициализации объектов взаимодействия композиции.

    В методе Initialize вызываются методы EnsureDispatcherQueue, CreateDesktopWindowTarget и CreateCompositionRoot. Эти методы создаются на следующих шагах.

    • В CompositionHost.h объявите общедоступный метод Initialize, который принимает HWND в качестве аргумента.
    • В CompositionHost.cpp добавьте определение метода Initialize.

    Создайте очередь диспетчера в потоке, который будет использовать Windows Composition.

    Необходимо создать Compositor в потоке с очередью диспетчера, поэтому этот метод вызывается первым во время инициализации.

    • В CompositionHost.h объявите частный метод EnsureDispatcherQueue.
    • В CompositionHost.cpp добавьте определение метода EnsureDispatcherQueue.

    Зарегистрируйте окно приложения в качестве цели композиции.

    • В CompositionHost.h объявите частный метод CreateDesktopWindowTarget, который принимает HWND в качестве аргумента.
    • В CompositionHost.cpp добавьте определение метода CreateDesktopWindowTarget.

    Создайте корневой контейнер для размещения визуальных объектов.

    • В CompositionHost.h объявите частный метод CreateCompositionRoot.
    • В CompositionHost.cpp добавьте определение метода CreateCompositionRoot.

    Выполните сборку проекта, чтобы убедиться в отсутствии ошибок.

    Эти методы настраивают компоненты, необходимые для взаимодействия между визуальным уровнем UWP и интерфейсами API Win32. Теперь вы можете добавить содержимое в приложение.

    Добавление элементов композиции

    Теперь, когда инфраструктура настроена, можно создать содержимое Composition, которое необходимо отобразить.

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

    Добавьте элемент композиции.

    • В CompositionHost.h объявите общедоступный метод AddElement, который принимает 3 значения с плавающей запятой в качестве аргументов.
    • В CompositionHost.cpp добавьте определение метода AddElement.

    Создание и отображение окна

    Теперь можно добавить кнопку и содержимое композиции UWP в пользовательский интерфейс Win32.

    В методе InitInstance измените размер создаваемого окна. (В этой строке измените CW_USEDEFAULT, 0 на 900, 672 .)

    В функции WndProc добавьте case WM_CREATE в блок параметров message. В этом случае инициализируется CompositionHost и создается кнопка.

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

    Добавьте case BTN_ADD в блок параметров wmId в блоке WM_COMMAND.

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

    Если запустить приложение и нажать кнопку, в пользовательском интерфейсе должны отобразиться анимированные квадраты.

    Превью к статье о создании C++ Windows Forms проекта

    Шаг 0. А вдруг получится сразу?

    В настоящее время IDE, поддерживающих Windows forms, не так много — буквально одна только Visual Studio, более известная как просто "студия". Поэтому будем рассматривать создание и решение проблем именно в этой среде разработки. Первым шагом запустим студию, начнём создавать новый проект и попытаемся найти Windows forms проект для C++:

    Создаём новый проект в студии

    Ищем Winfows Forms для C++

    Если у вас более старая версия Visual Studio, то интерфейс будет выглядеть немного иначе, однако данная функциональность будет той же. Также не исключено, что у Вас может быть данный тип проекта для C++ (на некоторых версиях формы для C++ были доступны сразу после установки IDE). Если же у Вас, как и у нас поиск не дал нужных результатов, то переходим к следующему шагу.

    Шаг 1. Создание CLR проекта

    Поскольку непосредственно Windows Forms проекта у нас не оказалось, мы обхитрим студию и создадим пустой CLR проект на С++. Для этого в том же окне поиска необходимо найти и выбрать Новый CLR проект , ввести имя (если нужно, то поменять директорию расположения проекта) и немного подождать, пока студия сделает свою работу.

    Ищем пустой CLR проект (.Net Framework)

    Создаём новый пустой CLR проект

    В результате Visual Stido создаст новый C++ CLR проект, который будет выглядеть примерно так:

    Результат создания нового CLR проекта

    Шаг 2. Добавить форму

    Чтобы сделать CLR проект проектом Windows Forms, нужно просто добавить в него форму. Для этого в верхнем меню нужно выбрать Проект - Добавить новый элемент и в появившемся окне выбрать категорию Visual C++ - UI и затем выбрать Форма Windows Forms .



    После данной операции нас ждёт разочарование в виде ошибки Исключение из HRESULT: 0x8000000A :

    Вместо формы получили ошибку

    Шаг 3. Исправляем появившуюся ошибку

    Данная ошибка появляется из-за того, что для создания окна формы приложению необходима основная программа, создающая форму и переключающая управление на неё, однако после добавления новой формы файл Form1.cpp предсказуемо создаётся пустым. Поэтому необходимо добавить основную программу в файл с формой:

    В результате код файла Form1.cpp будет выглядеть следующим образом:

    Добавление основной программы к форме

    Шаг 4. Переоткрыть проект

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

    Форма создалась, можно добавлять компоненты

    Благодаря добавленному коду основной программы, студия сможет создать форму и на экране появится изображение формы, на которую можно будет добавлять компоненты, задавать их свойства, а также свойства самой формы.

    Фото Перминова Андрея, автора этой статьи

    Выпускник МГУ им. М.В. Ломоносова

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

    Поскольку мне всё равно пришлось ставить Visual Studio Community для того, чтобы установить Windows Kits для работы с WinAPI, то я решил не использовать MingW, а доустановить C++ build tools и использовать их для компиляции. В этом случае придётся переделать задачи (tasks) и настройки VSCode.

    Хорошее описание нашёл здесь, его и буду использовать в данной заметке.

    Нам потребуется


    1. Естественно нам потребуется сама программа VSCode.
    2. В Visual Studio Community должен быть установлен компонент Desktop development with C++ :

    Чтобы проверить успешную установку, достаточно вызвать Developer Command Prompt for VS 2019 (файл VsDevCmd.bat ) из Пуска. Там нужно запустить файл cl.exe . Вывод консоли должен быть без ошибок:

    3. Для VSCode должно быть установлено дополнение (расширение) Microsoft C/C++

    Настройка

    4. В Проводнике открываем рабочую папку проекта и, удерживая Shift , нажимаем правую кнопку мыши, после чего выбираем Open PowerShell window here
    5. В открывшемся окошке PowerShell запускаем VSCode, для этого нужно набрать code . и нажать Enter :

    Шаги 9-11 скорее всего не нужны. В статье они есть, но без них у меня всё тоже прекрасно компилируется.


    9. Открываем палитру команд с помощью комбинации клавиш Ctrl + Shift + P
    10. Список большой, поэтому проще ввести часть слова и выбрать нужную команду Edit Configurations UI из списка:

    11. В конфигурации необходимо проверить, а, при необходимости, установить путь для компилятора:



    12. Внесём изменения в файл settings.json :

    У меня глобальный файл настроек, а не только для проекта, поэтому я добавляю строчки в начало файла C:\Users\Denis\AppData\Roaming\Code\User\settings.json

    13. Ранее я уже создавал файл Задач tasks.json, поэтому сейчас я добавлю к нему новые строчки:

    14. Чтобы у нас была возможность запустить проект на отладку, можно использовать файл launch.json . Но я не хочу создавать такой файл для каждого проекта каждый раз, поэтому сделаю глобальную конфигурацию. Для этого я добавлю строчки в файл settings.json :

    Благодаря этому, при нажатии F5 , проект будет откомпилирован, а потом запущен сразу после этого. Просто запустить, без отладки, можно комбинацией Ctrl + F5

    Читайте также: