Как создать Windows Forms C++ проект на MVS? Что такое CLR, CLI, управляемый класс с++?
HTML-код
- Опубликовано: 8 сен 2024
- Всем привет! Меня зовут Владимир рад вас видеть на канале @FPS.FirePlanetStudio!
В этом видео кратко разберемся с:
1. Где взять бесплатную среду разработки Microsoft Visual Studio (MVS)
2. Как установить MVS, чтобы можно было создать WinForms C++ проекты
3. Как настроить рабочее пространство в MVS для комфортной работы
4. Как настроить проект в MVS, чтобы запускать Windows Forms приложение
5. Что такое CLR
6. Что такое CLI
7. Что такое Управляемые классы в С++ и для чего они нужны
Полезный код (в том числе функция main из видео): github.com/Vla...
Таймкоды:
=== Часть 1 (создание нового проекта WinForms) ===
0:35 - начала нового проекта
0:56 - где взять microsofr visual studio (MVS)
1:36 - установка студии
2:22 - создание нового WinForm проекта
2:46 - выбор дополнительных компонентов MVS
3:15 - пустой проект CLR
3:50 - рабочая область MVS
5:45 - создание формы
7:33 - настройка пректа для запуска
8:56 - точка входа приложения (функция main)
=== Часть 2 (CLR, CLI, управляемые классы) ===
11:26 - CLR, CLI, управляемые классы (теория)
Код из видео + полезные функции преобразования строк: github.com/Vla...
* Контакты для связи:
• VK: vladimi...
• VK: fps_fir...
• Telegram: @Vladimir_Repp
• Телефон (смс, WhatsApp): 89994402751
• Почта: fireplanetstudio@mail.ru
• Instagram (можно писать в direct): @fps.fireplanetstudio
• Группа в VK (можно писать в сообщения группы): fps_fireplanetstudio
** Социальные сети, там будут новые и актуальные новости:
• Instagram (можно писать в direct): @fps.fireplanetstudio
• Группа в VK (можно писать в сообщения группы): fps_fireplanetstudio
*** Приятного просмотра!
**** Саунд лист:
TSu - Xoxo
Romen Jewels - Music Box
JJD - Discover
Jim Yosef - Canary
Три часа гуглил и танцевал вокруг Студии, пока не наткнулся на этот правильный и подробный мануал, я спасён
Большое спасибо за хороший урок с объяснением фундаментальных вещей, которых обычно не встретишь в других туториалах.
Долго искал эту информацию по созданию WinForm проекта на С++. Спасибо большое!
Спасибо, а то долго морочился, а тут оказывается версия новая вышла, спасибо!
Изложено ясно и понятно. Ничего лишнего. Огромное спасибо.
Присоединяюсь к Prorok p. Обзор элементов Windows Forms помог бы очень..
Уже в работе. Скоро будут на накале 👌
@@FPS.FirePlanetStudio Хорошо. Ждём
Привет, было бы интересно посмотреть видео с кратким разбором всех элементов Windows Forms
Prorok p, заказ принят 👌
Постараемся сделать в ближайшее время 😉
Огромное Вам спасибо за информацию!!! Не просто - "далай так и вот так", а с описанием что именно и для чего делается.
Отличный канал! Жаль, не выпускаете новых уроков((
Работаем над новыми материалами, постараемся в ближайшее время начать более активно выкладывать, но много проектов в работе. Спасибо за поддержку!
thanks a lot you saved my life , 2 days before the presentation
Очень интересно и понятно!
Спасибо!
#include "MyForm.h"
using namespace System;
using namespace System::Windows::Forms;
[STAThreadAttribute]
void main(array^ args) {
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
ProjectN1Forms::MyForm form;
Application::Run(% form);
}
кодец который быстрее копирнуть
в топ!!
@@paveltrigubets2054 конечно хорошо, когда есть выбор - скопировать или написать самому. Но, считаю, если учишься - то делай сам. Так быстрей научишься, чем просто копировать чей-то код)
@@rus.m всё верно , но на самом начале ещё у новичков нет воображения как состоят алгоритмы ,и на крайняк самое то посмотреть подсказуку ) но в целом ты полностью прав , лучше всего дойти ло этого самому ))
ТОлково спасибо ждем продолжений
СПАСИБО !!!
спасибо, в c# проще windows forms создать, а на c++ еще попробуй найти его самостоятельно)
C++/CLI не поддерживается с 2005 года, используйте только с# для winforms, иначе будут много проблем
.Net CLI на многих языках работает. На с# по сравнению с с++ будет конечно удобнее.
Здравствуйте, хочу по благодарить за подробный пример. Вы занимаетесь весьма нужным делом. Хотелось бы вас попросить привести пример работы с портами в Windows forms на C++. С пустого проекта. Я только осваиваю это направление и конечно нет такого опыта работы с ним. Заранее благодорю.
Здравствуйте, спасибо за видео! Подскажите, почему объект forms передается в функцию run() со знаком % ? Какой это язык?
За материал - спасибо. Но возникает вопрос - на кой С++ в таком режиме нужен, если он потерял все свои преимущества в производительности? Кто будет на нем программировать, если работает он не быстрее С#, который легче и проще?
Для работы с оконными приложениями (WinForms, WPF) лучше с#. Многий функционал ревизован на нем гораздо проще и удобнее. Но и у с++ есть свои преимущества, он более гибок при работе с памятью, по этому и на нем порой возникает необходимость работать с подобными приложениями. Все зависит от специфики разрабатываемого ПО.
Чаще всего с++ изучают в учебных заведениях и переходят к визуальному программированию/программированию приложений/интерфейсных приложений. Но при разработке ПО чаще используют с# и технологию WPF, так как она более новая и более гибкая при работе с интерфейсом, потому что использует таблицы xaml (хотя WPF так же как и WinForms работает со всеми .net framework совместимыми языками и на с++ на нем тоже можно работать)
Ага. Попробуй докажи это моему преподу, у которой в программе указаны формы именно на плюсах. Так-то нормально учат, но иногда аж вымораживает
@@tellator согл. Нужно делать курсач и делать его обязательно на с++. У меня есть штук 5 игр на unity и c#, но они им не подходят из-за используемого языка
Доброго времени суток!
А можете посоветовать линтер/автоформатер кода для C++ в MS VS, способный при форматировании кода не допускать строк длиннее, чем, например 100 символов, как советует например делать Стэнфордский университет. Да, можно использовать SoftWrap по границе экрана, но тогда при передаче кода кому-то другому или просмотре в примитивных редакторах длинные строки дадут о себе знать.
Пока что поставил плагин EditorGuidelines для добавления вертикальной направляющей по 100-й колонке, но её линтер встроенный вроде игнорирует.
Ещё нашёл плагин Rewrap, но вроде как он без ошибок обрабатывает только комментарии, а код, видимо, может поломать, сейчас буду тестить.
Удивлён, что так тяжело настроить линтер для C++ в MS VS, который умеет уменьшать длину строк кода (не только комментариев), как autopep8 для Python в PyCharm. Там вообще ничего настраивать не надо - просто autopep8 установить.
Посмотрите про clang-format
Clang fоrmatter имеет функцию переноса если я правильно понял что нужно.
@@konstantingurtovoy5709 точно! Не заметил сразу ваш комментарий.
О, то что CLI добавляет к C++ сборщик мусора при работе с Windows Forms проектом, это приятная новость
Один вопрос, нахрена они оставили такие костыли а не оставили как было раньше
Почему так мало подписчиков на канале??!...... Оочень странно!
А еслим допустим мне нужно не одна форма а 2-3 то мне надо в исполняемый код формы что-то дописать?
Смотря что вам нужно. Если открывать другие формы, например, по нажатию на кнопку, то сначала подключить заголовочный файл нужных форм. Далее, в обработчике нажатия создать нужную форму и показать ее закрыв текущую, если нужно.
@@FPS.FirePlanetStudio Вы можете это продемонстрировать на видео? Я изначально хотел работать в формами C#, а потом мне захотелось попробовать C++
@@endermanminecraft5353, да, конечно. В ближайшее время планируется разбор разных компонентов win forms, но пока что, нет точной даты, когда подготовим материал.
@@FPS.FirePlanetStudio Хорошо, буду ждать нетерпением!
Я правильно понял : благодаря CLI или CLR , я после выделения динамической памяти могу его не освобождать , это вместо меня сделает CLR ?
Здравствуйте! у меня на странице свойств форм нет пунктов система >подсистема> консоль ( system:console). как их найти? На видео 7:45
в панели элементов нет элементов
А вы создали форму? Пока форма не будет создана, в планете элементов не будет элементов.
@@FPS.FirePlanetStudio у меня такая-же проблема. форма создона но элементов нет
столкнулся с проблемой
создал установочник и перенес его на другой компьютер а там программа не работает. Как сделать чтобы программа работал и на других ПК? Помогите пожалуйста🙏
внутренняя ошибка компилятора что делать ?
Да, та же история...
#include "MyForm.h"
#include
using namespace НазваниеРешения;
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
Application::Run(gcnew MyForm);
return 0;
}
А вот настройки решения не трогать
Здравствуйте. Я бы хотел заказать у вас один небольшой проект если принимаете заказ, для управления скуд, хотел бы узнать Во сколько мне это обойдется Спасибо.
У меня есть вопрос как использовать перемегную из первой формы во второй.
Если кто-то ответит буду сильно благодарен
Ну как там?
Я чайник, предположу что можно сделать #include
В cpp файл второй формы (если на C++)
Не знаю как там на C# и в других
Спасибо за видео! VS выдает ошибку: недостаточно аргументов для std::array (аргументы функции main()). Добавление длины array ситуацию не исправляет, не смог разобраться
Скорее всего у вас подключено пространство имён std и в нем есть определение array, также оно есть и в System, которое нужно для функции main. Выключите std, тогда аргумент главной функции нормально отработает. При необходимости можно указывать std::нужное сочетание (например: std::string и подобное).
Перехожу на ссылку с кодом из видео, выдает ошибку!
У меня ссылка работает исправно
github.com/VladimirRepp/Utilities
а ещё неразрешимая ошибка компиляции
Проверьте настройки проекта. Там должна быть указана точка входа и подсистема, и написана в коде точка входа приложения.
нету у меня такого UI
Скинет пожалуйста весь проект который @FPS FirePlanetStudio делал в этом видео
Привет, начал создавать форму и возникла ошибка(немогу понять как её исправить), можете помочь? "Показать конструктор для этого файла невозможно, так как невозможно сконструировать ни один из входящих в него классов. Конструктор проверил следующие классы в этом файле: Gameform --- Невозможно загрузить базовый класс 'System.Windows.Forms.Form'. Проверьте, что есть ссылка на сборку и все проекты созданы."
Просто перезагрузка не помогает.
Здравствуйте. Опишите проблему немного подробнее. Что за форма Gameform? Можете написать личным сообщением, контакты есть под видео.
@@FPS.FirePlanetStudio здраствуйте проблему исправил Загрузкой библиотеки SDK
Актуальнее:
#include "MyForm.h"
#include
using namespace Project5; // Название проекта
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
Application::Run(gcnew MyForm);
return 0;
}
Есть в описании
почему ваш вариант более акруальный?
Для C++ есть QT, а это какое-то извращение. На крайняк можно использовать MFC тоже самое, но на C++, но QT всё равно лучше будет.
Смотря какие цели. Мне комфортнее в MVS, так как использую для разных целей данную IDE, а QT не удобен для меня.
Toolbox is empty
problem has been solved using dotnet framework