Перейти к содержимому

Как создать clr приложение в visual studio 2019

  • автор:

Как создать Windows Forms проект на C++

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

Windows Forms — интерфейс программирования приложений, отвечающий за графический интерфейс пользователя. Он является частью .Net Framework и создан для того, чтобы упростить взаимодействие пользователя с элементами Win API. Причём не просто упростить, а буквально полностью скрыть низкоуровневое взаимодействие с графическими элементами путём создания набора базовых компонентов и классов. При этом используемые классы не привязаны к языку разработки, благодаря чему данный проект может использоваться как на родном для Microsoft C#, так и на других языках, например, C++, VB Net и F#. Но не смотря на свою кроссплатформенность в мире языков программирования, Windows Forms проекты легко создаются на C#, однако при попытке создания проекта на C++ возникает множество проблем.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Проект -> Добавить новый элемент

Visual C++ -> UI -> Форма Windows Forms

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

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

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

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

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

#include «Form1.h» #include using namespace имя_вашего_проекта; int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

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

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

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

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

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

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

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

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

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

Программист, сооснователь programforyou.ru, в постоянном поиске новых задач и алгоритмов

Языки программирования: Python, C, C++, Pascal, C#, Javascript

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

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

Copyright © 2017 — 2023 Programforyou — помощь с программированием | programforyou.ru

Как создать clr приложение в visual studio 2019

БлогNot. Visual Studio 2013 и выше: как сделать приложение Windows Forms?

Visual Studio 2013 и выше: как сделать приложение Windows Forms?

Ну да, такого «мастера приложений с одной главной формой», как в версии 2010, нет. Но это не значит, что работа с формами не поддерживается — просто создавайте пустой проект CLR и добавляйте форму в него «вручную». Вот весь процесс, расписанный по шагам:

Меню Создать проект, Visual C++, CLR, Пустой проект CLR. После создания проекта нажать на вкладку Проект, Добавить новый элемент, UI, форма Windows Form. Потом добавить следующий код в файл MyForm.cpp :

#include "MyForm.h" //Здесь пишем имя h-файла вашей формы! using namespace Example1; //Здесь пишем имя вашего проекта! [STAThreadAttribute] int main(array ^args) < Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); Application::Run(gcnew MyForm()); //Тоже пишем имя своей формы, если оно не MyForm return 0; >

Далее нажимаем вкладку Проект, Свойства имя_текущего_проекта.

Выбираем Свойства конфигурации, Компоновщик, Система, справа в поле Подсистема вставляем Windows (строку /SUBSYSTEM:WINDOWS ).

Затем Свойства конфигурации, Компоновщик, Дополнительно, справа поле Точка входа, вставляем строку main

Приведённый вариант кода MyForm.cpp — не единственный, в новых версиях Studio лучше делать так:

#include "MyForm.h" using namespace System; using namespace System::Windows::Forms; [STAThread] int main(array^ arg) < Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); Project1::MyForm form; //Вместо Project1 - имя вашего проекта Application::Run(%form); return 0; >

Это всё, можно работать.

Для экспорта шаблона делаем следующее: из меню «Файл» выбираем пункт «Экспорт шаблона». В появившимся мастере шаблонов соглашаемся со всем, только проверяем, чтобы стояла галочка на «Автоматический импорт шаблонов в Visual Studio». Жмем Готово. Теперь в мастере проектов появился новый пункт.

P.S. Проверил в Visual Studio 2015, подход также сработал. Увы, экспорт шаблона в некоторых сборках версий Studio 2015 и 2017 может работать криво, не добавляя в шаблон файлы .cpp и .h!

P.P.S. В Visual Studio 2019 действия те же, но если после установки Visual Studio 2019 отсутствует конструктор формы Windows Forms, читаем и ставим это.

Если устанавливается актуальная сборка версии Enterprice (16.5.X и старше), установить рабочую нагрузку «Разработка классических приложений» и из раздела «Дополнительные компоненты» отметить «Поддержка C++/CLI» (C++/CLI Support)

Цитируем официальную доку:

«В Visual Studio 2017 и более поздних версиях поддержка C++/CLI является необязательным компонентом. Чтобы установить его, откройте Visual Studio Installer из меню «Пуск» Windows. Убедитесь, что установлен флажок Разработка классических приложений на C++, и в разделе Дополнительные компоненты также следует проверить поддержку C++/CLI.

«Individual Components» (Индивидуальные компоненты) — «Поддержка C++/CLI» («C++/CLI support»)»

Возможно, без обновления версии поможет вот это дополнение.

В версии Studio 2019 примерно со сборки 16.5 (см. меню Справка — О программе) отдельно «доставлять» конструктор форм не нужно, создаваемый тип проекта называется «Пустой проект CLR (.NET Framework)», а сохранить шаблон можно из меню Проект — Экспорт шаблона. В принципе, для работы с C++ и Windows Forms нужны только следующие нагрузки:

Рабочие нагрузки VS 2019 CPP

Рабочие нагрузки VS 2019 CPP

09.02.2015, 14:54 [17127 просмотров]

Создание графического приложения (Windows Forms) в Visual Studio

Для последней версии Visual Studio 2013 (всех редакций):
Создать проект->Visual C++->CLR->Пустой проект CLR->
После создания проекта нажать на вкладку Проект->Добавить новый элемент->UI->форма Windows Form.
Потом добавить следующий код в MyForm.cpp:

1 2 3 4 5 6 7 8 9 10 11 12 13
#include "MyForm.h" //the header name for your form using namespace CyberForum; //name of your project [STAThreadAttribute] int main(arraySystem::String ^> ^args) { Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); Application::Run(gcnew MyForm()); return 0; }

Далее нажимаем вкладку проект-Свойства : (имя текущего проекта).
Свойства конфигурации — Компоновщик — Система — Подсистема (Configuration Properties — Linker — System — SubSystem): вставляем Windows (/SUBSYSTEM:WINDOWS).
Свойства конфигурации — Компоновщик — Дополнительно — Точка входа (Configuration Properties — Linker — Advanced — Entry Point): вставляем main
Также в MyForm.cpp можно добавить следующий код:

1 2 3 4 5 6 7 8 9 10 11 12 13
#include "MyForm.h" using namespace System; using namespace System::Windows::Forms; [STAThread] void main(arrayString^>^ arg) { Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); Project2::MyForm form; //Project2 - name of your project Application::Run(%form); }

Сложение двух чисел в Visual Studio 2013 на C++ (CLR приложение)

В статье рассказывается как создать CLR приложение сложения двух чисел в Visual Studio 2013 на C++.

Создание проекта

Создание нового проекта

Выбор типа проекта

Созданный проект

Подготовка проекта

В отличии от Visual Studio 2010 тут CLR приложения создаются пустыми без формы. Зачем они это сделали — непонятно. Будем добавлять форму самостоятельно.

Щелкаем по проекту правой кнопкой и следуем иллюстрациям:

Клик правой кнопкой по проекту

Добавление нового элемента

Добавление новой формы

Созданная форма

Далее перейдем в файл cpp нашей формы:

Переход в исходный файл формы

Допишем там вот такой код после единственной строчки:

using namespace System; using namespace System::Windows::Forms; [STAThread] void Main(arrayString^>^args)  Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); Additions2numbers::MyForm form; Application::Run(%form); >: 

Внимание! Обратите внимание, что Additions2numbers — это название вашего проекта в коде выше. Поэтому, если ваш проект называется по-другому, то вставьте своё название проекта:

Внешний вид кода программы

Щелкнем по проекту правой кнопкой и перейдем в его свойства:

Выбор свойств проекта

В настройках компоновщика нужно в двух местах поменять настройки:

Настройки компоновщика

Редактирование точки входа приложения

Жмем OK , и мы закончили прикручивать форму к нашему приложению.

Можете запустить приложение и проверить работоспособность. Если приложение скомпилируется и запустится, то всё норм. Иначе проверьте все шаги до этого:

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

Интерфейс приложения

Перейдем на форму. Можно сделать двумя способами:

Переход на форму

Обратите внимание, что код кнопок и сама форма прописывается в h файле, а не cpp .

Перетащите два textBox на форму, в которые будем записывать наши числа:

Перетаскивание textBox

Первый textBox

Второй textBox

Перетащите кнопку на форму:

Перетаскивание кнопки

Перетащите третий textBox на форму, в которую мы будем выводить информацию:

Перетаскивание textBox

Третий textBox

Однострочные и многострочные текстовые поля задаются одним компонентом. Поэтому мы должны изменить параметры нашего textBox3 , чтобы в нем можно было выводить много строк. Выделим наш textBox3 и изменим его параметры:

Изменение свойства Multiline на true

Теперь мы можем его растянуть вниз:

Начальные размеры textBox

Конечные размеры textBox

Написание кода основной программы

Щелкнете по кнопке двойным кликом:

Двойной клик по кнопке

Мы получили метод, в котором прописываем реакцию на клик нашей мыши:

Созданный метод обработки клика кнопки

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

int x, y, z; //Считаем значение из первого lineEdit String^ S1 = textBox1->Text; //Переведем значение в число x = Convert::ToInt32(S1); //Считаем значение из второго lineEdit String^ S2 = textBox2->Text; //Переведем значение в число y = Convert::ToInt32(S2); //Посчитаем сумму z = x + y; //Выведем результат textBox3->Text = z.ToString(); 

Код в методе обработки клика кнопки

Запуск программы

Немного поменял размеры компонентов и изменил текст на кнопке. Поэтому ниже на скринах компоненты чуть по-другому будут выглядеть:

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

Получаем наше приложение:

Запущенное приложение

При вводе наших чисел получим вот это:

Результат выполнения приложения

  • Visual Studio 2017 Logo.svg by Microsoft Corporation / (2019-06-08)
  • Visual Studio
  • C++
  • Сложение двух чисел

В статье рассказывается как создать CLR приложение сложения двух чисел в Visual Studio 2013 на C++.

В статье рассказывается как создать CLR приложение сложения двух чисел в Visual Studio 2013 на C++.

Harrix

  • GitHub User
  • TODO@mail.ru

Write an awesome description for your new site here. You can edit this line in _config.yml. It will appear in your document head meta (for Google search results) and in your feed.xml site description.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *