2014-05-20 2 views
0

Je crée un fichier .dll à utiliser en C#, mais je n'arrive pas à comprendre les wrappers.Enveloppe C++ à utiliser en C#. Utilisation de la classe privée en tant que paramètre

Disons que mon code d'origine C++ a une fonction qui ressemble à ceci:

void classB::do_something(classA& parameterA); 

Dans mon C++ wrapper pour CLASSA, le pointeur de la classe est privé:

public ref class classAwrapper{ 
    private: 
     classA* classapointer; 
    public: 
     ... 
} 

Depuis que je peux » t faire ce qui suit,

void classBwrapper::do_something(classAwrapper parameterA){ 
    classbpointer->do_something(parameterA->classapointer); 
} 

Y at-il quelque chose que je peux faire?

+0

classapointer doit être * interne *, pas privé. –

+0

c'est interne. – generic

Répondre

0

Ajouter un ami.

Ecrire:

private: 
    friend class classBwrapper; 
    classA * classapointer; 

au lieu de

private: 
    classA * classapointer; 

Vous pouvez essentiellement ajouter des classes et des fonctions à une 'liste blanche' en utilisant le mot-clé friend. classapointer ne sera pas accessible à tout mais classBwrapper

+0

Malheureusement, les amis ne sont pas autorisés dans C++ géré. – generic

+0

Est-ce que classAwrapper est en C++ ou C#? –

+0

Tout ce code est en C++. – generic

Questions connexes