Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette rubrique décrit les macros de configuration C++/WinRT. Sauf indication contraire, ces règles s’appliquent à toutes les macros de configuration C++/WinRT :
- Tous les fichiers liés ensemble pour former un seul module (
.exeou.dll) doivent avoir des paramètres de macro identiques. Cela inclut des bibliothèques statiques. - Tous les paramètres de macro doivent être terminés avant d’inclure n’importe quel fichier d’en-tête C++/WinRT.
- Vous ne pouvez modifier aucun paramètre de macro après avoir inclus n’importe quel fichier d’en-tête C++/WinRT.
WINRT_LEAN_AND_MEAN
Si elle est définie, désactive ces fonctionnalités rarement utilisées (afin de réduire les temps de compilation) :
- Possibilité d’implémenter des interfaces exclusives en dehors du composant.
- std ::hash spécialisations pour les pointeurs intelligents d’interface et de classe runtime.
- Prise en charge de l’écriture directe d’un hstring ou d’un IStringable vers un flux C++, depuis la version 2.0.221101.3.
Vous êtes autorisé à combiner des fichiers avec différents paramètres pour WINRT_LEAN_AND_MEAN.
Les fichiers qui ne définissent pas WINRT_LEAN_AND_MEAN ont accès aux fonctionnalités rarement utilisées.
WINRT_NO_MODULE_LOCK
Si elle est définie, désactive le nombre d’objets pour le module actuel. Le module ne se décharge jamais du processus. Définir cette macro est d’usage pour les exécutables (qui ne peuvent jamais être déchargés) ou pour .dll que vous avez l’intention de laisser chargés en permanence. Peut ne pas être combiné avec WINRT_CUSTOM_MODULE_LOCK.
WINRT_CUSTOM_MODULE_LOCK
Si elle est définie, vous pouvez fournir votre propre implémentation de winrt ::get_module_lock. Peut ne pas être combiné avec WINRT_NO_MODULE_LOCK.
Votre implémentation personnalisée de winrt ::get_module_lock doit prendre en charge les opérations suivantes :
-
++winrt::get_module_lock(): incrémentez le nombre de références sur le verrou du module. -
--winrt::get_module_lock(): décrémentez le nombre de références sur le verrou du module. -
if (winrt::get_module_lock()): vérifiez si le nombre de références n’est pas égal à zéro. (Nécessaire si vous générez une DLL.)
WINRT_ASSERT, WINRT_VERIFY
Ces macros vous permettent de personnaliser la gestion des assertions. WINRT_ASSERT ne nécessite pas l’évaluation de l’argument. WINRT_VERIFY exige que l’argument soit évalué, même dans les builds non-debug.
Si vous ne personnalisez pas ces macros et que _DEBUG est défini, C++/WinRT les rend équivalents à _ASSERTE.
Si vous ne personnalisez pas ces macros et que _DEBUG n’est pas défini, C++/WinRT définit WINRT_ASSERT pour ignorer l’expression non évaluée et définit WINRT_VERIFY pour ignorer l’expression après l’avoir évaluée.
WINRT_NO_MAKE_DETECTION
Si elle est définie, désactive le diagnostic C++/WinRT par défaut qui détecte que vous avez construit par erreur une classe d’implémentation sans utiliser winrt ::make.
Nous vous recommandons vivement de ne pas définir ce symbole, car cela masque une source courante d’erreurs de programmation.
WINRT_NO_SOURCE_LOCATION
Si elle est définie, désactive l’inclusion des informations sur le fichier source et le numéro de ligne (et, dans les versions de débogage, des informations sur la fonction) lors de la génération des erreurs.
Ces informations supplémentaires ne sont pas utilisées par C++/WinRT, mais elles sont mises à la disposition d’autres bibliothèques qui souhaitent interagir avec des exceptions C++/WinRT, telles que la bibliothèque d’implémentation Windows.
Par défaut, les informations sont incluses lors de la compilation en mode C++20 ou version ultérieure. Vous pouvez supprimer ces informations pour réduire la taille binaire.
WINRT_DIAGNOSTICS
Si elle est définie, active les statistiques internes pour suivre différentes opérations :
- Nombre de fois où chaque interface a été interrogée.
- Nombre de fois où chaque usine a été demandée (et si l’usine est agile).
WINRT_NATVIS
Si elle est définie, inclut des fonctions d’assistance pour faciliter les visualisations de débogage natives dans Visual Studio. Le code n’est pas utilisé au moment de l’exécution ; il existe uniquement pour le débogage.
Si vous ne personnalisez pas cette macro, les fonctions de prise en charge de la visualisation sont activées si _DEBUG est définie. Pour plus d’informations, consultez la visualisation du débogage natif (natvis) pour C++/WinRT dans Visual Studio.
Vous êtes autorisé à combiner des fichiers avec différents paramètres pour WINRT_NATVIS.
Si un fichier est compilé avec WINRT_NATVIS prise en charge, le module résultant aura des visualisations de débogage natives activées.
WINRT_EXPORT, WINRT_FAST_ABI_SIZE
N’utilisez pas ces macros.
Windows developer