首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于msxml的有关问题

2012-01-22 
关于msxml的问题我原来在MFC程序中使用MSXML一直没问题。可是,最近写的一个MFC dll中也需要调用MSXML来解析

关于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吧?

热点排行