Сложение двух чисел в Visual Studio 2017 на C++ (CLR приложение)
В статье рассказывается как создать CLR приложение сложения двух чисел в Visual Studio 2017 на C++.
📖 Содержание ⬇️
Содержание
Установка Visual Studio
Об установке программы с нужными пакетами можно прочитать в статье Установка Visual Studio 2017 Community | ↗️.
Создание проекта

Рисунок 1 — Создание нового проекта

Рисунок 2 — Выбор типа нового проекта
Дописывание кода
В отличии от Visual Studio 2010 тут CLR приложения создаются пустыми без формы. Зачем они это сделали — непонятно. Будем добавлять форму самостоятельно.
Щелкаем по проекту правой кнопкой и следуем иллюстрациям:

Рисунок 3 — Добавление нового элемента

Рисунок 4 — Создание новой формы
Скорее всего, что у вас возникнет вот такая картинка с ошибками:

Рисунок 5 — Ошибка при открытии созданной формы
В Visual Studio 2015 проблема решалась просто: достаточно было открыть и закрыть форму:

Рисунок 6 — Закрытие формы

Рисунок 7 — Открытие формы
Но в Visual Studio 2017 обнаружилась проблема. При двойном клике по MyForm.h в Обозревателе решений открывается только текстовая версия файла без конструктора. Что делать?
Нужно просто закрыть Visual Studio, запустить заново и открыть только что созданный проект:

Рисунок 8 — Открытие решения

Рисунок 9 — Выбор главного файла решения
И потом двойным щелчком по MyForm.h открываем конструктор формы:

Рисунок 10 — Открытие формы

Рисунок 11 — Форма открылась
Далее перейдем в файл cpp нашей формы:

Рисунок 12 — Файл cpp
Допишем там вот такой код после единственной строчки:
using namespace System;
using namespace System::Windows::Forms;
[STAThread]
void Main(array<String^>^args)
{
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
Проект1::MyForm form;
Application::Run(%form);
}
Обратите внимание, что Проект1 — это название вашего проекта в коде выше. Поэтому, если ваш проект называется по-другому, то вставьте своё название проекта.
Щелкнем по проекту правой кнопкой и перейдем в его свойства:

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

Рисунок 14 — Изменение подсистемы

Рисунок 15 — Изменение точки входа
Жмем OK, и мы закончили прикручивать форму к нашему приложению.
Можете запустить приложение и проверить работоспособность. Если приложение скомпилируется и запустится, то всё норм. Иначе проверьте все шаги до этого:

Рисунок 16 — Запуск проекта

Рисунок 17 — Запуск проекта

Рисунок 18 — Запущенное приложение
Интерфейс приложения
Перейдем на форму. Можно сделать двумя способами:

Рисунок 19 — Переход на форму
Обратите внимание, что код кнопок и сама форма прописывается в h файле, а не cpp.
Откроем и закрепим панель элементов:

Рисунок 20 — Панель элементов

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

Рисунок 22 — Перетаскивание первого textBox

Рисунок 23 — Перетаскивание второго textBox
Перетащите кнопку на форму:

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

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

Рисунок 26 — Изменение свойства Multiline
Теперь мы можем его растянуть вниз:

Рисунок 27 — Растягивание textBox
Написание кода основной программы
Щелкнете по кнопке двойным кликом:

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

Рисунок 29 — Метод клика кнопки
В фигурных скобках пропишем код нашей программы по считыванию двух чисел, их сложении и выводе результата:
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();

Рисунок 30 — Метод клика кнопки с кодом
Запуск программы

Рисунок 31 — Запуск приложения
Получаем наше приложение:

Рисунок 32 — Запущенное приложение
При вводе наших чисел получим вот это:

Рисунок 33 — Результат работы программы