Простое приложение на нескольких языках программирования
Файлы к лабораторной работе Вы можете скачать
здесь
Это небольшой пример для демонстрации способа многоязыковой разработки отдельных частей одного и того же приложения. Задача работы - продемонстрировать тот факт, что выбор языка в среде .NET не имеет никакого значения. Хоть пример является максимально простым, но принципы остаются неизменными независимо от сложности приложения. Важно лишь, чтобы при создании сборки учитывались общие требования к языкам для всех открытых переменных, методов и свойств.
План будет такой
- Напишем базовый класс на C++
- Напишем класс на Visual Basic.NET, который будет наследовать от класса C++
- Напишем класс на C#, который в консольном приложении создаст экземпляр класса Visual Basic.NET и вызовет его метод
-
Выберите
место для размещения нового решения -
Через
меню оболочки вызовите мастер создания нового пустого решения
-
Укажите
в мастере имя решения HelloSolution
После щелчка по кнопке OK мастер создаст каталог, имя которого совпадает с именем решения HelloSolution. Решение будет состоять из нескольких проектов, которые будут храниться в подчиненных каталогах. Выбор шаблона Blank Solution указывает, что будет разрабатываться приложение, нейтральное к используемому языку.
Написание класса на C++ .NET
-
Вызовите
через меню оболочки мастер добавления нового проекта в наше
пустое решение
-
Укажите
мастеру, что мы собираемся добавить в решение проект типа
библиотечного класса на управляемом C++ (C++.NET) с именем HelloCPP
Обратите внимание на нижнюю часть окна мастера, где прописан подчиненный каталог для размещения кода нового проекта, добавляемого в решение.
После щелчка по кнопке OK мастер создаст заготовку кода добавляемого проекта HelloCPP. Состав файлов заготовки проекта отобразится в панели Solution Explorer
-
Откройте
на редактирование файл HelloCPP.h. Его заготовка, созданная
мастером, имеет вид
// HelloCPP.h
#pragma once
using namespace System;
namespace HelloCPP
{
public __gc class Class1
{
// TODO: Add your methods for this class here.
};
}
Листинг
1.1.
Заготовка описания класса в файле HelloCPP.h
Не будем пока обращать внимание на некоторые новые элементы, заметим лишь, что заготовка создана для управляемого C++.
Поскольку реализация класса весьма проста, разместим наш простой код прямо в заголовочном файле. Код будет выводить сообщение на главную консоль (экран).
-
Измените
код файла HelloCPP.h, чтобы он выглядел так
// HelloCPP.h
#pragma once
using namespace System;
namespace HelloCPP
{
public __gc class HelloCPP
{
// TODO: Add your methods for this class here.
public:
virtual void Hello()
{
Console::WriteLine("Привет из управляемого C++ !!!");
}
};
}
Листинг
1.2.
Измененный файл HelloCPP.h
Здесь метод HelloCPP::Hello() использует функцию System::Console::WriteLine() из библиотеки классов .NET Framework для вывода в окно консоли приветствия от управляемого кода C++.
-
Постройте
проект, не запуская его на выполнение, и убедитесь в отсутствии
синтаксических ошибок




