Managed C++ permite interoperar más fácilmente entre código nativo y código administrado. Por ejemplo, si tiene una biblioteca en C++ (archivos .cpp y archivos .h), puede vincularlos a su proyecto, crear los objetos CLR apropiados y simplemente llamar al código nativo desde sus objetos 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;
};
}
Managed C++ también está en desuso: en su lugar, debe centrarse en C++/CLI. Es mucho, mucho mejor de usar, y aborda el mismo espacio problemático. –