2010-02-17 5 views
1

Je dois utiliser une structure arborescente à l'intérieur d'un serveur ATL COM. J'ai pensé à utiliser stl :: map > dans ce but comme suit.Utilisation de STL dans ATL

BaseMap[k1,NextLevelMap[k2, NextLevelMap[k3, Value]]] 

Mais je dois savoir, que ce soit en utilisant une telle structure à l'intérieur ATL est sûr et possibilité de mise au point avec le soutien des cartes.

Merci

Répondre

5

Les classes de bibliothèque standard C++ sont sûres à utiliser avec ATL - ATL inclut même quelques classes spécifiquement conçues pour s'interfacer avec des conteneurs suivant les conventions de bibliothèque standard: ICollectionOnSTLImpl et CComEnumOnSTL.

Le débogage est également bon - le débogueur Visual Studio cache l'implémentation des conteneurs standard et montre à la place une vue logique de ce qu'ils contiennent.

4

Les classes STL sont des classes ordinaires, rien de spécial. Vous pouvez les utiliser dans les serveurs COM à condition que vous vous occupiez des problèmes de multithreading - les trucs appelés "appartements", puisque les classes STL ne sont pas sécurisées pour les threads par elles-mêmes.

Vous pouvez déboguer des classes STL comme toutes les autres classes à condition de compiler le projet de manière appropriée - avec les informations de débogage activées.