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 certaines erreurs de build courantes et explique comment les résoudre.
Cas 1 : erreurs « DECLSPEC_SAFEBUFFERS »
Erreur de build (extrait de code) :
1>traceloggingprovider.h(1592): error C2146: syntax error : missing ';' before identifier 'TLG_STATUS'
1>traceloggingprovider.h(1592): error C2433: 'DECLSPEC_SAFEBUFFERS' : 'inline' not permitted on data declarations
1>traceloggingprovider.h(1592): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Difficulté:
Incluez windows.h avant d’inclure TraceLoggingProvider.h dans votre fichier source.
Cas 2 : TraceLogging dans les applications C++ modernes
Erreur de build (extrait de code) :
Après avoir copié les fichiers d’en-tête TraceLogging dans votre environnement de build et ajouté cette ligne :
TraceLoggingRegisterByGuid(g_3DBuilderTraceProvider, &s_3DBuilderTraceProviderGuid);
Vous avez obtenu cette erreur de l’éditeur de liens :
Error 2 error LNK2001: unresolved external symbol __imp__EventSetInformation@20
E:\TFS\Main\PrintPreviewR5\Viewers\PrintPreview\App.xaml.obj PrintPreview
Error 3 error LNK2001: unresolved external symbol __imp__EventRegister@16
E:\TFS\Main\PrintPreviewR5\Viewers\PrintPreview\App.xaml.obj PrintPreview
Difficulté:
Les applications UWP doivent être liées à advapi32.lib pour résoudre ce problème de référence.
Cas 3 : Builds de téléphone
Erreur de build (extrait de code) :
Lors de la compilation du fichier dictationuimodel.cpp, vous obtenez l’erreur :
traceloggingprovider.h(1592) : error C2146: syntax error : missing ';' before identifier 'TLG_STATUS'
traceloggingprovider.h(1592) : error C2433: 'DECLSPEC_SAFEBUFFERS' : 'inline' not permitted on data declarations
Difficulté:
Voir Cas n° 1. Il est probable que votre SDK ne définit pas la macro DECLSPEC_SAFEBUFFERS. Les kits SDK à jour ont une définition pour cette macro. Si votre SDK ne définit pas cette macro, vous devez fournir votre propre définition.
DECLSPEC_SAFEBUFFERS est défini dans winnt.h, qui doit être inclus par windows.h. En outre, jusqu’à la publication publique du Kit de développement logiciel (SDK) Windows 10, vous devrez peut-être définir le mot clé de télémétrie :
#ifndef WINEVENT_KEYWORD_TELEMETRY
#define WINEVENT_KEYWORD_TELEMETRY 0x2000000000000
#endif