C++/CLI: Visibilidad/acceso de tipos nativos

Supongamos que tenemos lo siguiente en una assembly C++/CLI:

//Assembly A
public ref class ManagedClass{
public:
    ManagedClass( const NativeClass & a );
}

Si quiero invocar ese constructor desde otra assembly, por ejemplo...

//Assembly B
ManagedClass^ AnotherManagedClass::Property::get(){
    NativeClass temp;
    return gcnew ManagedClass( temp );
}

...al tratar de compilar Assembly B, nos saltará un error en tiempo de compilación que dirá que el constructor que estamos invocando es privado. ¿Pero cómo puede ser si lo declaramos público? La respuesta está acá.

Allí vemos que la solución consiste en usar la directiva #pragma make_public(NativeClass) justo debajo del #include de NativeClass.

Comments

Popular posts from this blog

VB.NET: Raise base class events from a derived class

Apache Kafka - I - High level architecture and concepts

Upgrading Lodash from 3.x to 4.x