2013-01-19 71 views
4

我想編譯一個我繼承的項目,然後遇到這個錯誤。這裏有一些相關的代碼:智能感知:命名空間「MSXML2」在VS2012中沒有成員「DOMDocument」

#include <msxml.h> 
... 
HRESULT hr; 
hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument)); 

任何人都可以幫忙嗎?

+0

我後來去了MSXML2的定義,並將DOMDocument改成IXMLDOMDocument,現在該項目可以運行了,而我仍然不知道爲什麼 – Elderry

+0

不幸的是,我剛剛發現這個解決方案可以讓項目被編譯,只剩下該程序運行異常... – Elderry

回答

7

我在Windows 8中看到類似的問題。似乎MSXML 6.0不公開DOMDocument,但它確實公開了DOMDocument60。爲幫助其他人通過搜索來到這裏,編譯器錯誤您可能還會看到: 錯誤C2039:'DOMDocument':不是'MSXML2'的成員

嘗試進行以下更改以顯式使用6.0接口:

#import "msxml6.dll" 
... 
HRESULT hr; 
hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument60)); 

我看到別人有這個問題,但在Excel自動化的上下文中。參見討論here

+0

感謝您的幫助,我在一個月前解決了這個問題,但忘了在這裏發佈解決方案... – Elderry

+0

謝謝!這是我在互聯網上唯一找到這個解決方案的地方... – Colen

相關問題