在visual studio 2010中,如果我启动一个控制台项目和#include,这可以正常工作,但如果我启动一个win32项目和#include,它会在编译期间返回许多错误。
为什么?
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 'IXMLDOMAttribute' 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
答案 0 :(得分:2)
缺少的是#include <ole2.h>
或其中的某些部分
定义WIN32_LEAN_AND_MEAN
时,Ole2是从Windows.h
中删除的标题之一
如果定义INC_OLE2
,则可以添加Ole2。
如果您提供标题并且不确定用户可能定义的内容,那么您可以寻求安全
#if !defined(INC_OLE2) && defined(WIN32_LEAN_AND_MEAN)
#include <ole2.h>
#endif
#include <msxml2.h>
答案 1 :(得分:1)
问题是stdafx.h文件中的#define WIN32_LEAN_AND_MEAN,删除此条目以解决。