ATL项目中普通类通过CoCreateInstance获取IXMLDOMDocument接口时返回E_NOINTERFACE
在ATL项目中的一个普通C++类(此类被BHO对象实例化)的一个函数中有如下代码:
- C/C++ code
hr = CoCreateInstance(CLSID_DOMDocument, NULL,CLSCTX_INPROC_SERVER, IID_IXMLDocument, (void**)&m_pConfigXMLDoc);if(FAILED(hr)){ return FALSE;}hr返回为E_NOINTERFACE,这是什么原因?
[解决办法]
关注
[解决办法]
- C/C++ code
hr = CoCreateInstance(/*CLSID_DOMDocument*/CLSID_XMLDocument, NULL,CLSCTX_INPROC_SERVER, IID_IXMLDocument, (void**)&m_pConfigXMLDoc);
[解决办法]
MSXML::IXMLDOMDocumentPtr m_plDomDocument;
HRESULT hr = m_plDomDocument.CreateInstance(MSXML::CLSID_DOMDocument);
if (FAILED(hr))
{ _com_error er(hr);
lasterror = er.ErrorMessage();
return false;
}
这样试试看
[解决办法]
支持!帮顶!
[解决办法]
检查你的计算机上安装的MSXML的版本。用#import的方式导入MSXML接口。