Организация межмодовой взаимосвязи в середовищі .NET Framework. Создание DLL-библиотеки на языке C++ и поддержка функций из проекта Windows на языке C#
Автор: Liza261101 • Март 25, 2022 • Лабораторная работа • 3,551 Слов (15 Страниц) • 213 Просмотры
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ ХАРЧОВИХ ТЕХНОЛОГІЙ
Кафедра інформаційних систем
ЛАБОРАТОРНА РОБОТА № 1
з дисципліни Крос-платформне програмування
на тему:
на тему: «Організація міжмовної взаємодії у середовищі .NET Framework.
Створення DLL-бібліотеки на мові C++ та виклик її функцій з Windows проекту на мові C#»
Варіант 7
Виконала студентка 3 курсу
групи КН-3-3ск
Діброва Єлізавета Максимівна
Перевірив
Доцент Бобрівник К.Є.
Київ – 2022
Мета: набути навичок з розробки та збирання компонентів у багатомовному середовищі MS .NET Framework.
Завдання:
1. Ознайомитись з багатомовним середовищем MS .NET Framework.
2. Користуючись теоретичними відомостями виконати розробку програми (за індивідуальним варіантом завдання лабораторної роботи №1, що відповідає номеру студента у групі).
3. Оформити роботу у вигляді звіту.
[pic 1]
Хід роботи
Лабораторна робота виконана у середовищі MS Visual Studio 2010.
Виконання роботи складається з наступних етапів:
1) Створення рішення у багатомовному середовищі MS .NET Framework;
2) Створення проекту DLL–бібліотеки на мові C++
3) Експорт символів
4) Визначення угод виклику
5) Створення Windows-проекту для виклику функцій з DLLбібліотеки і розробки інтерфейсу програми;
6) Налаштування та тестування роботи програми.
Під час виконання лабораторної роботи був створений проект DLL– бібліотеки на мові C++, що реалізує обчислення середнього арифметичного та середнього геометричного трьох дійсних чисел, обчислення площі та радіса вписаного у рівнобедрену трапецію кола за сторонами цієї трапеції, обчислення функцї arccos(x) через ряд Тейлора: [pic 2] для [pic 3].
Код програми на мові C++ міститься у файлі MyDll.cpp та має наступний вигляд:
// dllmain.cpp : Определяет точку входа для приложения DLL.
#include "pch.h"
#include <cmath>
#include <iostream>
using namespace std;
extern "C" __declspec(dllexport) double __stdcall seredneA(double a, double b, double c)
{
double sa;
sa = (a + b + c) / 3;
return sa;
}
extern "C" __declspec(dllexport) double __stdcall seredneG(double a, double b, double c)
{
double r, d, sg;
r = a * b * c;
d = 1.0 / 3.0;
sg = pow(r, d);
return sg;
}
extern "C" __declspec(dllexport) double __stdcall trapeciaR(double ab, double bc, double ad)
{
double h, r, s;
h = sqrt(pow(ab, 2) - ((pow((ad - bc), 2)) / 4));
r = h / 2;
s = 3.14 * pow(r, 2);
return r;
}
extern "C" __declspec(dllexport) double __stdcall trapeciaS(double ab, double bc, double ad)
{
double h, r, s;
h = sqrt(pow(ab, 2) - ((pow((ad - bc), 2)) / 4));
r = h / 2;
...