关于msxml的问题
我原来在MFC程序中使用MSXML一直没问题。可是,最近写的一个MFC dll中也需要调用MSXML来解析xml文件。当在DLL的中调用msxml直接崩溃了。
在执行到第一行:
XML::IXMLDOMDocumentPtr xmlDoc(__uuidof(DOMDocument));
时就出错了,以后的代码根本没办法执行。有谁知道怎么解决吗?100分奉上。
注:XML::IXMLDOMDocumentPtr xmlDoc(__uuidof(DOMDocument));是在一个lib文件中,由这个dll调用的。
[解决办法]
需要先CoInitialize(NULL); 吧
[解决办法]
使用MSXML的版本!
1,导入dll
#if defined(MSXML4)
#import <msxml4.dll> no_function_mapping
#define MSXMLNS MSXML2
#elif defined(MARKUP_MSXML3)
#import <msxml3.dll> no_function_mapping
#define MSXMLNS MSXML2
#else
#import <msxml.dll>
#define MSXMLNS MSXML
#endif
2' 调用com前要调用
CoInitialize(NULL);
3'创建实例
#if defined(MSXML4 )
HRESULT hr = m_pDOMDoc.CreateInstance( __uuidof(MSXML2::DOMDocument40) );
#elif defined( MARKUP_MSXML3 )
HRESULT hr = m_pDOMDoc.CreateInstance( __uuidof(MSXML2::DOMDocument) );
#else
HRESULT hr = m_pDOMDoc.CreateInstance( "Microsoft.XMLDOM" );
#endif
3'调用后要
CoUnInitialize();
[解决办法]
控件注册过吗?
[解决办法]
没有afxoleinit吧?