Как создать Windows Forms C++ проект на MVS? Что такое CLR, CLI, управляемый класс с++?

Поделиться
HTML-код
  • Опубликовано: 26 авг 2020
  • Всем привет! Меня зовут Владимир рад вас видеть на канале ‪@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/VladimirRepp/Utili...
    Таймкоды:
    === Часть 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/VladimirRepp/Funct...
    * Контакты для связи:
    • VK: vladimir_repp
    • VK: fps_fireplanet
    • 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

Комментарии • 72

  • @BlackenedPoison
    @BlackenedPoison 2 месяца назад +1

    Три часа гуглил и танцевал вокруг Студии, пока не наткнулся на этот правильный и подробный мануал, я спасён

  • @diceline1677
    @diceline1677 8 месяцев назад +2

    Большое спасибо за хороший урок с объяснением фундаментальных вещей, которых обычно не встретишь в других туториалах.

  • @pavelnovikov3894
    @pavelnovikov3894 2 года назад +3

    Спасибо, а то долго морочился, а тут оказывается версия новая вышла, спасибо!

  • @nikolas4229
    @nikolas4229 3 года назад +3

    Очень интересно и понятно!

  • @user-pe3ur7he4q
    @user-pe3ur7he4q 4 месяца назад

    Долго искал эту информацию по созданию WinForm проекта на С++. Спасибо большое!

  • @awinner7778
    @awinner7778 2 года назад

    ТОлково спасибо ждем продолжений

  • @user-op9hg1kr2b
    @user-op9hg1kr2b 3 года назад +2

    Спасибо!

  • @jalal1578
    @jalal1578 3 года назад +2

    thanks a lot you saved my life , 2 days before the presentation

  • @user-un1nr3zp6m
    @user-un1nr3zp6m 3 года назад +1

    СПАСИБО !!!

  • @rus.m
    @rus.m Год назад

    Огромное Вам спасибо за информацию!!! Не просто - "далай так и вот так", а с описанием что именно и для чего делается.
    Отличный канал! Жаль, не выпускаете новых уроков((

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  Год назад +2

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

  • @Tor-of7mx
    @Tor-of7mx 2 года назад +2

    Изложено ясно и понятно. Ничего лишнего. Огромное спасибо.
    Присоединяюсь к Prorok p. Обзор элементов Windows Forms помог бы очень..

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  2 года назад +1

      Уже в работе. Скоро будут на накале 👌

    • @Tor-of7mx
      @Tor-of7mx 2 года назад

      @@FPS.FirePlanetStudio Хорошо. Ждём

  • @prorokp3601
    @prorokp3601 3 года назад +14

    Привет, было бы интересно посмотреть видео с кратким разбором всех элементов Windows Forms

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  3 года назад +4

      Prorok p, заказ принят 👌
      Постараемся сделать в ближайшее время 😉

  • @KingDog25
    @KingDog25 2 года назад

    спасибо, в c# проще windows forms создать, а на c++ еще попробуй найти его самостоятельно)

  • @user-yz4ig5qx8v
    @user-yz4ig5qx8v Год назад

    Здравствуйте, спасибо за видео! Подскажите, почему объект forms передается в функцию run() со знаком % ? Какой это язык?

  • @sleepyNovember_project
    @sleepyNovember_project 6 месяцев назад

    О, то что CLI добавляет к C++ сборщик мусора при работе с Windows Forms проектом, это приятная новость

  • @user-vd6it1ek3k
    @user-vd6it1ek3k Год назад

    Здравствуйте! у меня на странице свойств форм нет пунктов система >подсистема> консоль ( system:console). как их найти? На видео 7:45

  • @user-fo3pk4yp5q
    @user-fo3pk4yp5q 3 года назад +3

    Здравствуйте, хочу по благодарить за подробный пример. Вы занимаетесь весьма нужным делом. Хотелось бы вас попросить привести пример работы с портами в Windows forms на C++. С пустого проекта. Я только осваиваю это направление и конечно нет такого опыта работы с ним. Заранее благодорю.

  • @stechaz6421
    @stechaz6421 3 года назад

    Здравствуйте. Я бы хотел заказать у вас один небольшой проект если принимаете заказ, для управления скуд, хотел бы узнать Во сколько мне это обойдется Спасибо.

  • @vvp6552
    @vvp6552 2 года назад

    Я правильно понял : благодаря CLI или CLR , я после выделения динамической памяти могу его не освобождать , это вместо меня сделает CLR ?

  • @maratkarreew6233
    @maratkarreew6233 Год назад

    столкнулся с проблемой
    создал установочник и перенес его на другой компьютер а там программа не работает. Как сделать чтобы программа работал и на других ПК? Помогите пожалуйста🙏

  • @adeptussilicium2821
    @adeptussilicium2821 2 года назад +1

    Доброго времени суток!
    А можете посоветовать линтер/автоформатер кода для C++ в MS VS, способный при форматировании кода не допускать строк длиннее, чем, например 100 символов, как советует например делать Стэнфордский университет. Да, можно использовать SoftWrap по границе экрана, но тогда при передаче кода кому-то другому или просмотре в примитивных редакторах длинные строки дадут о себе знать.
    Пока что поставил плагин EditorGuidelines для добавления вертикальной направляющей по 100-й колонке, но её линтер встроенный вроде игнорирует.
    Ещё нашёл плагин Rewrap, но вроде как он без ошибок обрабатывает только комментарии, а код, видимо, может поломать, сейчас буду тестить.
    Удивлён, что так тяжело настроить линтер для C++ в MS VS, который умеет уменьшать длину строк кода (не только комментариев), как autopep8 для Python в PyCharm. Там вообще ничего настраивать не надо - просто autopep8 установить.

    • @konstantingurtovoy5709
      @konstantingurtovoy5709 Год назад +1

      Посмотрите про clang-format

    • @DepechLyot
      @DepechLyot Год назад

      Clang fоrmatter имеет функцию переноса если я правильно понял что нужно.

    • @DepechLyot
      @DepechLyot Год назад

      @@konstantingurtovoy5709 точно! Не заметил сразу ваш комментарий.

  • @XCLIPS_VIDEO
    @XCLIPS_VIDEO Год назад

    Один вопрос, нахрена они оставили такие костыли а не оставили как было раньше

  • @progressive_agriculture
    @progressive_agriculture 3 года назад +2

    За материал - спасибо. Но возникает вопрос - на кой С++ в таком режиме нужен, если он потерял все свои преимущества в производительности? Кто будет на нем программировать, если работает он не быстрее С#, который легче и проще?

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  3 года назад +3

      Для работы с оконными приложениями (WinForms, WPF) лучше с#. Многий функционал ревизован на нем гораздо проще и удобнее. Но и у с++ есть свои преимущества, он более гибок при работе с памятью, по этому и на нем порой возникает необходимость работать с подобными приложениями. Все зависит от специфики разрабатываемого ПО.
      Чаще всего с++ изучают в учебных заведениях и переходят к визуальному программированию/программированию приложений/интерфейсных приложений. Но при разработке ПО чаще используют с# и технологию WPF, так как она более новая и более гибкая при работе с интерфейсом, потому что использует таблицы xaml (хотя WPF так же как и WinForms работает со всеми .net framework совместимыми языками и на с++ на нем тоже можно работать)

    • @tellator
      @tellator 2 года назад +1

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

    • @BobbyBigPenis
      @BobbyBigPenis 2 года назад +1

      @@tellator согл. Нужно делать курсач и делать его обязательно на с++. У меня есть штук 5 игр на unity и c#, но они им не подходят из-за используемого языка

  • @endermanminecraft5353
    @endermanminecraft5353 3 года назад +2

    А еслим допустим мне нужно не одна форма а 2-3 то мне надо в исполняемый код формы что-то дописать?

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  3 года назад

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

    • @endermanminecraft5353
      @endermanminecraft5353 3 года назад

      @@FPS.FirePlanetStudio Вы можете это продемонстрировать на видео? Я изначально хотел работать в формами C#, а потом мне захотелось попробовать C++

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  3 года назад +1

      @@endermanminecraft5353, да, конечно. В ближайшее время планируется разбор разных компонентов win forms, но пока что, нет точной даты, когда подготовим материал.

    • @endermanminecraft5353
      @endermanminecraft5353 3 года назад

      @@FPS.FirePlanetStudio Хорошо, буду ждать нетерпением!

  • @user-slitigor
    @user-slitigor 3 года назад

    Спасибо за видео! VS выдает ошибку: недостаточно аргументов для std::array (аргументы функции main()). Добавление длины array ситуацию не исправляет, не смог разобраться

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  3 года назад +1

      Скорее всего у вас подключено пространство имён std и в нем есть определение array, также оно есть и в System, которое нужно для функции main. Выключите std, тогда аргумент главной функции нормально отработает. При необходимости можно указывать std::нужное сочетание (например: std::string и подобное).

  • @rus.m
    @rus.m Год назад

    Почему так мало подписчиков на канале??!...... Оочень странно!

  • @user-hruser
    @user-hruser Год назад +1

    C++/CLI не поддерживается с 2005 года, используйте только с# для winforms, иначе будут много проблем

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  Год назад

      .Net CLI на многих языках работает. На с# по сравнению с с++ будет конечно удобнее.

  • @Me-rh1lo
    @Me-rh1lo 3 года назад +4

    внутренняя ошибка компилятора что делать ?

    • @user_TAJcGbJA
      @user_TAJcGbJA 2 года назад

      Да, та же история...
      #include "MyForm.h"
      #include
      using namespace НазваниеРешения;
      int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
      Application::EnableVisualStyles();
      Application::SetCompatibleTextRenderingDefault(false);
      Application::Run(gcnew MyForm);
      return 0;
      }
      А вот настройки решения не трогать

  • @biscvie
    @biscvie 2 года назад

    Перехожу на ссылку с кодом из видео, выдает ошибку!

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  2 года назад +1

      У меня ссылка работает исправно
      github.com/VladimirRepp/Utilities

  • @shadowofdarkness4919
    @shadowofdarkness4919 2 года назад

    Привет, начал создавать форму и возникла ошибка(немогу понять как её исправить), можете помочь? "Показать конструктор для этого файла невозможно, так как невозможно сконструировать ни один из входящих в него классов. Конструктор проверил следующие классы в этом файле: Gameform --- Невозможно загрузить базовый класс 'System.Windows.Forms.Form'. Проверьте, что есть ссылка на сборку и все проекты созданы."

    • @shadowofdarkness4919
      @shadowofdarkness4919 2 года назад

      Просто перезагрузка не помогает.

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  2 года назад

      Здравствуйте. Опишите проблему немного подробнее. Что за форма Gameform? Можете написать личным сообщением, контакты есть под видео.

    • @shadowofdarkness4919
      @shadowofdarkness4919 2 года назад

      @@FPS.FirePlanetStudio здраствуйте проблему исправил Загрузкой библиотеки SDK

  • @MrPrekolik
    @MrPrekolik 8 месяцев назад

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

    • @sleepyNovember_project
      @sleepyNovember_project 6 месяцев назад

      Ну как там?
      Я чайник, предположу что можно сделать #include
      В cpp файл второй формы (если на C++)
      Не знаю как там на C# и в других

  • @user-gp2fg3zb1m
    @user-gp2fg3zb1m Год назад

    нету у меня такого UI

  • @paveltrigubets2054
    @paveltrigubets2054 2 года назад +10

    #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
      @paveltrigubets2054 2 года назад

      кодец который быстрее копирнуть

    • @lekksha_
      @lekksha_ 2 года назад

      в топ!!

    • @rus.m
      @rus.m Год назад

      @@paveltrigubets2054 конечно хорошо, когда есть выбор - скопировать или написать самому. Но, считаю, если учишься - то делай сам. Так быстрей научишься, чем просто копировать чей-то код)

    • @paveltrigubets2054
      @paveltrigubets2054 Год назад

      @@rus.m всё верно , но на самом начале ещё у новичков нет воображения как состоят алгоритмы ,и на крайняк самое то посмотреть подсказуку ) но в целом ты полностью прав , лучше всего дойти ло этого самому ))

  • @aboba420
    @aboba420 3 года назад +2

    в панели элементов нет элементов

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  3 года назад

      А вы создали форму? Пока форма не будет создана, в планете элементов не будет элементов.

    • @xmurkat9033
      @xmurkat9033 2 года назад +5

      @@FPS.FirePlanetStudio у меня такая-же проблема. форма создона но элементов нет

  • @xmurkat9033
    @xmurkat9033 2 года назад

    Скинет пожалуйста весь проект который @FPS FirePlanetStudio делал в этом видео

  • @aboba420
    @aboba420 3 года назад +1

    а ещё неразрешимая ошибка компиляции

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  3 года назад

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

  • @johnrom7654
    @johnrom7654 2 года назад

    Toolbox is empty

    • @johnrom7654
      @johnrom7654 2 года назад +1

      problem has been solved using dotnet framework

  • @_sergeevich5827
    @_sergeevich5827 2 года назад

    Для C++ есть QT, а это какое-то извращение. На крайняк можно использовать MFC тоже самое, но на C++, но QT всё равно лучше будет.

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  2 года назад +1

      Смотря какие цели. Мне комфортнее в MVS, так как использую для разных целей данную IDE, а QT не удобен для меня.

  • @denisvishnyakov3690
    @denisvishnyakov3690 2 года назад

    Актуальнее:
    #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;
    }

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  2 года назад

      Есть в описании

    • @th3754
      @th3754 2 года назад

      почему ваш вариант более акруальный?