Il C++ gestito consente di interop più facilmente tra codice nativo e codice gestito. Per esempio, se si dispone di una libreria in C++ (file cpp e file .h), è possibile collegarli nel progetto, e creare gli oggetti CLR appropriate, e semplicemente chiamare il codice nativo da parte delle vostre oggetti CLR:
#include "yourcoollibrary.h"
namespace DotNetLibraryNamespace
{
public ref class DotNetClass
{
public:
DotNetClass()
{
}
property System::String ^Foo
{
System::String ^get()
{
return gcnew System::String(c.data.c_str());
}
void set(System::String ^str)
{
marshal_context ctx;
c.data = ctx.marshal_as<const char *>(str);
}
}
private:
NativeClassInMyCoolLibrary c;
};
}
Anche il C++ gestito è deprecato: è preferibile concentrarsi su C++/CLI. È molto, molto più bello da usare e affronta lo stesso spazio dei problemi. –