昨日在使用MSXML进行XML文件处理时,用如下方式创建XML文档接口对象时出现了链接失败的现象,屡试不成。在stdafx.h中, #include "MsXml2.h"
在实体类的cpp文件中,如下创建接口对象:
CComPtr < IXMLDOMDocument >XMLDoc;
HRESULT hr = XMLDoc.CoCreateInstance( CLSID_DOMDocument2 );
就是这样的语句。编译后,链接提示错误:
DOMXML.obj : error LNK2001: unresolved external symbol _CLSID_DOMDocument2 .
./Output/msxmlcppD.dll : fatal error LNK1120: 1 unresolved externals
我在MsXml2中搜索了一下,CLSID_DOMDocument2已经定义:
EXTERN_C const CLSID CLSID_DOMDocument;
#ifdef __cplusplus class DECLSPEC_UUID("F6D90F11-9C73-11D3-B32E-00C04F990BB4")
DOMDocument;
#endif
#define DOMDocument DOMDocument2 </

在使用MSXML处理XML文件时,通过CoCreateInstance创建IXMLDOMDocument接口对象时遇到链接失败的问题。错误提示为未解析外部符号 '_CLSID_DOMDocument2'。解决方案是将CLSID_DOMDocument2替换为__uuidof(DOMDocument),成功编译。原因尚待深入研究,此方法能帮助遇到相同问题的开发者解决问题。

492

被折叠的 条评论
为什么被折叠?



