Erreurs d’utilisation de msxml6.h sur Visual C ++

Dans Visual Studio 2010, si je lance un projet de console et #include, cela fonctionne correctement, mais si je lance un projet win32 et #include, de nombreuses erreurs sont renvoyées lors de la compilation.

Pourquoi?

Error 1 error C2146: syntax error : missing ';' before identifier 'IXMLDOMImplementation' c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 49 1 provamsxml6 Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 49 1 provamsxml6 Error 3 error C2146: syntax error : missing ';' before identifier 'IXMLDOMImplementation' c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 49 1 provamsxml6 Error 4 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 49 1 provamsxml6 Error 5 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 49 1 provamsxml6 Error 6 error C2086: 'int IXMLDOMImplementation' : redefinition c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 49 1 provamsxml6 Error 7 error C2146: syntax error : missing ';' before identifier 'IXMLDOMNode' c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 55 1 provamsxml6 Warning 8 warning C4091: '' : ignored on left of 'interface' when no variable is declared c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 55 1 provamsxml6 Error 9 error C2146: syntax error : missing ';' before identifier 'IXMLDOMDocumentFragment' c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 61 1 provamsxml6 Warning 10 warning C4091: '' : ignored on left of 'interface' when no variable is declared c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 61 1 provamsxml6 Error 11 error C2146: syntax error : missing ';' before identifier 'IXMLDOMDocument' c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 67 1 provamsxml6 Warning 12 warning C4091: '' : ignored on left of 'interface' when no variable is declared c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 67 1 provamsxml6 Error 13 error C2146: syntax error : missing ';' before identifier 'IXMLDOMDocument2' c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 73 1 provamsxml6 Warning 14 warning C4091: '' : ignored on left of 'interface' when no variable is declared c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 73 1 provamsxml6 Error 15 error C2146: syntax error : missing ';' before identifier 'IXMLDOMDocument3' c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 79 1 provamsxml6 Warning 16 warning C4091: '' : ignored on left of 'interface' when no variable is declared c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 79 1 provamsxml6 Error 17 error C2146: syntax error : missing ';' before identifier 'IXMLDOMNodeList' c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 85 1 provamsxml6 Warning 18 warning C4091: '' : ignored on left of 'interface' when no variable is declared c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 85 1 provamsxml6 Error 19 error C2146: syntax error : missing ';' before identifier 'IXMLDOMNamedNodeMap' c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 91 1 provamsxml6 Warning 20 warning C4091: '' : ignored on left of 'interface' when no variable is declared c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 91 1 provamsxml6 Error 21 error C2146: syntax error : missing ';' before identifier 'IXMLDOMCharacterData' c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 97 1 provamsxml6 Warning 22 warning C4091: '' : ignored on left of 'interface' when no variable is declared c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 97 1 provamsxml6 Error 23 error C2146: syntax error : missing ';' before identifier 'IXMLDOMAtsortingbute' c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 103 1 provamsxml6 Warning 24 warning C4091: '' : ignored on left of 'interface' when no variable is declared c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 103 1 provamsxml6 Error 25 error C2146: syntax error : missing ';' before identifier 'IXMLDOMElement' c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 109 1 provamsxml6 Warning 26 warning C4091: '' : ignored on left of 'interface' when no variable is declared c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 109 1 provamsxml6 Error 27 error C2146: syntax error : missing ';' before identifier 'IXMLDOMText' c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 115 1 provamsxml6 Warning 28 warning C4091: '' : ignored on left of 'interface' when no variable is declared c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 115 1 provamsxml6 Error 29 error C2146: syntax error : missing ';' before identifier 'IXMLDOMComment' c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 121 1 provamsxml6 Warning 30 warning C4091: '' : ignored on left of 'interface' when no variable is declared c:\program files (x86)\microsoft sdks\windows\v7.0a\include\msxml6.h 121 1 provamsxml6 

Ce qui manque, c’est #include ou une partie de celui-ci.
Lorsque WIN32_LEAN_AND_MEAN est défini, Ole2 est l’un des en-têtes supprimés de Windows.h .
Ole2 peut être rajouté si INC_OLE2 est défini.

Si vous fournissez un en-tête et que vous ne savez pas ce que les utilisateurs peuvent définir, vous pouvez alors opter pour la sécurité.

 #if !defined(INC_OLE2) && defined(WIN32_LEAN_AND_MEAN) #include  #endif #include  

Le problème est le #define WIN32_LEAN_AND_MEAN dans le fichier stdafx.h, supprimez cette entrée pour résoudre.