2008-10-13 6 views
3

Je commence juste un nouveau projet ATL/WTL et je me demandais si la variable globale _Module est toujours nécessaire?ATL/WTL nécessite-t-il toujours l'utilisation d'une variable globale _Module?

Retour quelques années, quand je commence à travailler avec WTL il était nécessaire (au moins pour 3,0 ATL) que vous définissez une variable globale telle que:

CAppModule _Module; 

Pour obtenir ATL pour fonctionner correctement. Mais récemment, j'ai lu quelque part que cela pourrait ne plus être nécessaire (mais le code généré par l'assistant l'utilise encore). J'ai également fait une recherche à travers les répertoires d'inclusion de Visual C++ et il a seulement ramassé _Module à quelques endroits - notamment le registre ATL COM.

Alors est-ce que j'ai encore besoin de définir une variable globale pour utiliser ATL de nos jours?

Répondre

5

Techniquement, vous n'avez pas besoin _Module instance globale depuis ATL/WTL la version 7. Un peu plus tôt le code ATL/WTL _Module référencé par ce nom spécifique et attend de vous pour déclarer une seule instance de cet objet. Cela a depuis été remplacé par un objet instance unique nommé _AtlBaseModule qui est automatiquement déclaré pour vous dans atlcore.h. Cela dit, certaines des meilleures fonctionnalités WTL sont contenues dans CAppModule et sa classe de base CComModule. Enregistrement COM automatique, gestion des boucles de messages, etc. La plupart des applications basées sur WTL non triviales souhaitent toujours une instance singleton d'une classe de base CComModule. Cependant, il n'a pas besoin d'être nommé _Module.

1

Dans les exemples de projets de la dernière version de WTL, celui-ci est toujours utilisé.

Dans stdafx.h:

extern CAppModule _Module; 

Dans les fichiers de mise en œuvre:

CAppModule _Module; 
+0

J'ai mentionné que le dernier code généré par l'assistant l'utilise toujours, même chose pour les échantillons. Je ne réponds toujours pas à ma question. – Daemin

+0

Puisque vous n'avez * pas * mentionné les échantillons WTL, qui sont plus intéressants que ceux des dossiers VS, j'ai pensé qu'il était tout à fait approprié de mentionner le. –