MSXML使用时的问题

zlopen 2006-06-11 04:06:05
小弟是刚从java转到c++上的,写了一个简单的mfc程序练手时遇到点问题
每次执行下面这块代码时,在DEBUG里都能看到有内存泄漏
CoInitializeEx(NULL,COINIT_SPEED_OVER_MEMORY);
CArray<char*> devicelist;
MSXML2::IXMLDOMDocumentPtr pDoc;
MSXML2::IXMLDOMElementPtr pElem;
MSXML2::IXMLDOMNodeListPtr pNodeList;
pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));
pDoc->load("c:\\test.xml");
pNodeList=pDoc->documentElement->firstChild->childNodes;
for(int i=0;i<pNodeList->length;i++)
{
pElem=pNodeList->Getitem(i);
devicelist.Add(_com_util::ConvertBSTRToString((_bstr_t)pElem->getAttribute("ID")));
}
看到一篇文件说_CrtDumpMemoryLeaks()能检查内存泄漏,查了一下,没想到有很多提示
Detected memory leaks!
Dumping objects ->
{142} normal block at 0x003AAC00, 20 bytes long.
Data: <@ : : > 40 AB 3A 00 C0 AB 3A 00 CD CD CD CD CD CD CD CD
{141} normal block at 0x003AABC0, 4 bytes long.
Data: <456 > 34 35 36 00
{137} normal block at 0x003AAB40, 4 bytes long.
Data: <123 > 31 32 33 00
{60} client block at 0x003A3298, subtype c0, 64 bytes long.
a CDynLinkLibrary object at $003A3298, 64 bytes long
Object dump complete.
该怎么处理才好
另外还有一种提示
xxx.exe 中的 0x7c81eb33 处最可能的异常: 0x80040155: 没有注册接口
是什么意思啊
...全文
391 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlopen 2006-06-14
  • 打赏
  • 举报
回复
搞笑了,现在就一句
CArray<char*> devicelist;
还是检测到有问题
Detected memory leaks!
Dumping objects ->
{60} client block at 0x003A3298, subtype c0, 64 bytes long.
a CDynLinkLibrary object at $003A3298, 64 bytes long
Object dump complete.
快晕了,到底是怎么回事
seasol 2006-06-13
  • 打赏
  • 举报
回复
循环删除元素指针肯定是需要的,即然CArray中的元素已无存在的意义了,就接着调用RemoveAll清空。
zlopen 2006-06-13
  • 打赏
  • 举报
回复
边跟踪边查了一下,是CArray的问题,能说说正确的释放方法吗,除了循环删除元素指针外,对CArray本身需要处理吗
seasol 2006-06-12
  • 打赏
  • 举报
回复
将devicelist中所有的指针delete掉
windyloft 2006-06-12
  • 打赏
  • 举报
回复
pDoc用完删除了吗?

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧