2009-08-19 7 views
2

Micropather exige que les utilisateurs implémentent leur classe abstraite "Graph" afin d'utiliser la bibliothèque. Quel est un bon moyen de faire cela à partir de C++/CLI afin que je puisse utiliser Micropather dans .NET?Solution de contournement C++/CLI pour l'implémentation d'une interface C++

Il n'y a que deux méthodes pour mettre en œuvre:

virtual float LeastCostEstimate(void* stateStart, void* stateEnd) = 0; 
virtual void AdjacentCost(void* state, std::vector<StateCost> *adjacent) = 0; 

Jusqu'à présent, j'ont été complotent avec gcroot et délégués, mais je n'ai rien encore solide.

Répondre

2

Il suffit d'écrire une classe C++ ordinaire qui hérite de Graph et d'utiliser le modèle gcroot pour faire référence aux objets CLR de cette classe.

class MyGraph : public Graph 
{ 
    gcroot<SomethingImportant ^> _stuff; 

    // implement abstract memfuncs to call onto _stuff 
}; 
Questions connexes