2011-05-22 3 views
1

Je souhaite créer un encapsuleur C++/CLI d'une classe C++.Pointeur géré C++/CLI dans le constructeur

Le problème est que je veux la classe ref à être lancé avec une référence de l'objet C++:

A (A& a); 

Cela fonctionne bien aussi longtemps qu'il est dans le même aseembly et utilisé dans le même projet. Mais quand j'essaie de référencer ce projet à partir d'un projet différent, et d'initier une classe ref avec une référence à un objet à partir de là, il ne reconnaîtra pas correctement les types, et ne reconnaîtra pas le bon constructeur.

Des idées pour résoudre ce problème?

Répondre

1

Je ne pense pas que vous serez en mesure d'utiliser une référence à l'objet C de dans ce cas, mais vous pouvez passer un pointeur sur l'objet C de à travers les frontières d'assemblage en les stockant dans un IntPtr puis récupérer à l'aide static_cast .

class nativeA; // Pre declaration 

A (IntPtr a) 
{ 
    nativeA * nativePtr = static_cast<nativeA*>(a.ToPointer()); 
    // Do something with nativeA 
} 
Questions connexes