Создание своего класса в CLR приложении в Visual Studio 2015 на C++/CLI
Учебный пример, для демонстрации создания своего класса, который бы взаимодействовал с формой приложения CLR приложении в Visual Studio 2015 на C++/CLI.
📖 Содержание ⬇️
Содержание
Постановка задачи
Надо написать класс, который внутри себя имеет только одну строковую переменную. Класс получает из кнопки имя файла, а возвращает расширение файла в виде строки.
Болванка приложения
Итак, создайте пустое приложение CLR с формой. Это можно сделать по статье | ↗️ дойдя в ней до пункта «Интерфейс приложения».
Интерфейс программы
Перетащите на форму кнопку и текстовое поле:

Рисунок 1 — Кнопка и текстовое поле
А также диалоговое окно открытия файла:

Рисунок 2 — Диалоговое окно открытия файла
Создание своего класса
Правый клик по проекту, и создаем новый элемент:

Рисунок 3 — Вызов команды «Создать новый элемент»
Создаем ExampleClass.h:

Рисунок 4 — Создание нового заголовочного файла
И в новом файле добавляем такой код:
using namespace System;
using namespace System::IO;
using namespace System::Xml;
ref class ExampleClass {
public:
ExampleClass();
ExampleClass(String^ fileName);
void setFileName(String^ fileName);
String^ getFileExtension();
private:
String^ fileName;
};
ExampleClass::ExampleClass() {
fileName = "1.txt";
}
ExampleClass::ExampleClass(String^ fileName) {
this->fileName = fileName;
}
void ExampleClass::setFileName(String^ fileName) {
this->fileName = fileName;
}
String^ ExampleClass::getFileExtension() {
int i = fileName->LastIndexOf(".");
String^ Ext = fileName->Substring(i);
return Ext;
}

Рисунок 5 — Код класса в редакторе
Обратите внимание на тот факт, что нам перед словом class нужно еще написать ref, чтобы мы могли использовать тип String^.
Также я подключил System::IO, System::Xml. Просто данная статья будет использоваться теми, кому эти два пространства имен будут нужны. Но вы можете их удалить.
Использование класса
Перейдем в файл MyForm.h:

Рисунок 6 — Переход на форму приложения
Двойной клик по кнопке:

Рисунок 7 — Двойной клик по кнопке
Там пишем код:
if (openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
{
String^ fileName = openFileDialog1->FileName;
ExampleClass a(fileName);
String^ Ext = a.getFileExtension();
textBox1->Text = Ext;
}

Рисунок 8 — Код обработки клика кнопки
Не забываем вверху файла MyForm.h подключить наш файл класса:
#include "ExampleClass.h"

Рисунок 9 — Подключение заголовочного файла класса
Запуск программы
Запускаем программу:

Рисунок 10 — Запуск приложения
Нажимаем на кнопку:

Рисунок 11 — Клик на кнопку
Выбираем файл:

Рисунок 12 — Выбор файла
В текстовом поле видите расширение файла:

Рисунок 13 — Результат выполнения программы