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
Post a Comment