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

如何判断一个IXMLDOMDocumentPtr之类的指针是否创建了实例

2012-01-23 
怎么判断一个IXMLDOMDocumentPtr之类的指针是否创建了实例?对于IXMLDOMDocumentPtr类的指针,如果不创建实

怎么判断一个IXMLDOMDocumentPtr之类的指针是否创建了实例?
对于IXMLDOMDocumentPtr类的指针,如果不创建实例的话就是用Release()会让程序弹出ASSERT错误, 现在我的程序中不清楚是否这个指针已经用CreateInstance创建了实例, 但是我要使用Release(), 请问如何判断IXMLDOMDocumentPtr是否已经创建了实例, 是不是用if(m_pDoc==NULL)就能判断呢,感谢

[解决办法]
从来没有用过的smart pointer是可以通过null判断是否被CreateInstance过,但是如果不是null,你也很难保证该指针有效。最好的方法还是根据COM的规则一层层传递返回值来提示该指针是否有效。

顺便说一句,VC自动生成的smart pointer真不是一个好东西,你必须熟悉它特殊的规则和异常机制,而且性能没有保证。使用MSXML的最佳方法是静态链接msxml.lib,并且配合ATL的CComPtr,检查HRESULT使用。
[解决办法]
不是NULL也不一定就有效,如果你这样,先赋初值为NULL,然后创建,如果不是NULL的话,那么应该就是有效的了

热点排行