Простое приложение на нескольких языках программирования
Файлы к лабораторной работе Вы можете скачать здесь
Это небольшой пример для демонстрации способа многоязыковой разработки отдельных частей одного и того же приложения. Задача работы - продемонстрировать тот факт, что выбор языка в среде .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++.
- Постройте проект, не запуская его на выполнение, и убедитесь в отсутствии синтаксических ошибок