Modifications ATL et MFC : ATL 7,1 et MFC 7,1
Mise à jour : novembre 2007
Remarque Il se peut que certaines fonctionnalités mentionnées dans cette rubrique ne soient pas encore opérationnelles dans la version actuelle de Visual C++.
Des modifications ont été apportées aux bibliothèques et aux Assistants ATL et MFC dans Visual C++ .NET 2003, dont certaines peuvent endommager le code existant.
Problèmes relatifs aux Assistants lors de la migration d'un projet d'ATL 6.0 vers ATL 7.1 (ATL)
CAtlServiceModuleT::InitializeSecurity a été retiré de CAtlServiceModuleT (ATL).
La fonction SetRfc822Time a été mise à jour.
Les projets créés avec l'Assistant ATL par défaut échouent sous Windows NT.
Problèmes relatifs aux Assistants lors de la migration d'un projet d'ATL 6.0 vers ATL 7.1
Lors de la conversion d'un projet Visual C++ 6.0 en un projet Visual C++ .NET 2003, des gestionnaires de messages sont ajoutés à la fin de la table des messages. Si la table des messages comporte une entrée CHAIN_*_MAP(...), les éléments ajoutés par l'Assistant sont inclus à la fin de l'entrée et peuvent ne pas être traités.
Par exemple, lors de la migration d'un projet contenant un contrôle Visual C++ 6.0 ATL vers un projet Visual C++ .NET 2003, le gestionnaire OnInitDialog n'est jamais appelé. Cela est dû au fait que MESSAGE_HANDLER est placé après l'entrée CHAIN_MSG_MAP(...) et non avant.
Pour s'assurer que le gestionnaire OnInitDialog est appelé, la ligne CHAIN_MSG_MAP(CComControl<Name of class>) doit être incluse à la fin de l'entrée CHAIN_MSG_MAP(...). L'implémentation de la classe de base OnInitDialog pourrait aussi effectuer l'initialisation nécessaire.
CAtlServiceModuleT::InitializeSecurity a été retiré de CAtlServiceModuleT
Dans Visual Studio .NET 2003, cette méthode n'est pas implémentée dans la classe de base. Pour plus d'informations, consultez CAtlServiceModuleT::InitializeSecurity.
La fonction SetRfc822Time a été mise à jour
Pour éviter les éventuels dépassements de mémoire tampon, la fonction SetRfc822Time comporte maintenant un paramètre supplémentaire et une valeur de retour qui indique la longueur de la chaîne requise pour stocker les données d'heure retournées.
Les projets créés avec l'Assistant ATL par défaut échouent sous Windows NT.
Dans Visual Studio .NET 2003, le compilateur MIDL possède un paramètre par défaut /robust qui fait que les projets exécutés sous Windows NT 4 cessent de répondre.
Pour remplacer la valeur de l'indicateur du compilateur MIDL par /no_robust
Cliquez avec le bouton droit sur votre projet puis, dans le menu contextuel, cliquez sur Propriétés.
La boîte de dialogue Propriétés du projet s'affiche.
Dans le volet gauche, cliquez sur MIDL, puis sélectionnez Ligne de commande.
Entrez /no_robust dans la zone de texte Options supplémentaires.