Managed C++ это дополненный язык C++ (
Managed Extensions for C++).
Managed C++ это переходный код между
C++ и
C#.
Managed C++ код пишется в файле с расширением cpp или h (пишется в том же файле где и обычный C++ код)
Managed C++ позволяет одновременно работать как с классами C# .NET, так и с обычным кодом C++.
Managed C++ управляется средой
CLR (Common Language Runtime) платформы .NET
файл book.h
С++ код и Managed C++ код
public ref class CBookManagedCode // Managed C++ класс
{
public:
CBookManagedCode();
public:
int CalculatePrice(interior_ptr<long> nBookID)
{
... // C++ код
}
};
C#
файл book.cs
// Создаем класс CBookManagedCode
CBookManagedCode book = new CBookManagedCode();
int BookID = 0;
int price = book.CalculatePrice(ref BookID);
Пример: C++ проект использует Managed С++ код для работы с классами C#
#include "stdafx.h" // подключаем С++ библиотеку
#include <iostream> // подключаем С++ библиотеку
using namespace System; // подключаем С# библиотеку для использования C# класса String
using namespace System::IO; // подключаем С# библиотеку для использования C# класса FileInfo
int _tmain(int argc, _TCHAR* argv[])
{
TCHAR strTitle[] = _T("d://1.txt"); // C++ код
String^ strFilename = gcnew String(strTitle); // managed c++ код создает String (класс C#)
// получаем информацию о файле используя C# класс FileInfo
FileInfo^ finfo = gcnew FileInfo(strFilename); // managed c++ код создает FileInfo (класс C#)
// выводим на экран используем std::cout (функция C++)
std::cout << "File size: " << finfo->Length << "\n";
return 0;
}