新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     >>计算机科学论坛<<     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> XML网站展示,XML源代码,XML编程示例。 本版仅接受原创、转贴、网站展示,具体的技术交流请前往各相关版块。
    [返回] 计算机科学论坛XML.ORG.CN讨论区 - XML技术『 XML源码及示例(仅原创和转载) 』 → IXMLDOMDocument 内存泄漏问题 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 6581 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: IXMLDOMDocument 内存泄漏问题 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     hexiyajin 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:5
      积分:69
      门派:XML.ORG.CN
      注册:2004/11/18

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hexiyajin发送一个短消息 把hexiyajin加入好友 查看hexiyajin的个人资料 搜索hexiyajin在『 XML源码及示例(仅原创和转载) 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hexiyajin的博客楼主
    发贴心情 IXMLDOMDocument 内存泄漏问题

    IXMLDOMDocument *pXMLDoc;
    ......
    pXMLDoc->get_xml(...);//调用完怎么释放呢?

    而且我感觉Release后,内存并没有释放!


    [此贴子已经被作者于2005-5-28 23:21:36编辑过]

       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/5/28 22:33:00
     
     InfoPen 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:56
      门派:XML.ORG.CN
      注册:2005/7/7

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给InfoPen发送一个短消息 把InfoPen加入好友 查看InfoPen的个人资料 搜索InfoPen在『 XML源码及示例(仅原创和转载) 』的所有贴子 引用回复这个贴子 回复这个贴子 查看InfoPen的博客2
    发贴心情 
    同感,我也发帖求助了,但没人回。阁下解决了没?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/7/7 11:39:00
     
     zybp1981 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:59
      门派:XML.ORG.CN
      注册:2005/10/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给zybp1981发送一个短消息 把zybp1981加入好友 查看zybp1981的个人资料 搜索zybp1981在『 XML源码及示例(仅原创和转载) 』的所有贴子 引用回复这个贴子 回复这个贴子 查看zybp1981的博客3
    发贴心情 
    我也发现这个问题,内存一直在增长,事实上我已经在析构函数中释放了Dom对象,我的开发环境是VC6.0,下面是我写的一个类,请大侠赐教!!!
    //////////////////////////////////////////////////////////////////////
    // Construction/
    //////////////////////////////////////////////////////////////////////
    MBTIXML::MBTIXML()
    {
      pXMLDom = NULL;
    }


    MBTIXML::~MBTIXML()
    {
        if (pXMLDom)
        {
          pXMLDom->Release();   
          pXMLDom = NULL;
        }  
    }

    'COMPONENT ID : LoadXML
    'COMPONENT description :
    '  Load XML content to DOM structure
    CString  MBTIXML::LoadXML(CString strXMLSource)
    {
       HRESULT hr;
       CString strReturn;
       VARIANT_BOOL status;
       BSTR bstr = NULL;

       CoInitialize(NULL);   
       hr = CoCreateInstance(CLSID_DOMDocument40,
                         NULL,
                         CLSCTX_INPROC_SERVER,
                         IID_IXMLDOMDocument,
                         (void**)&pXMLDom);

       if (FAILED(hr))
         strReturn = XML_PARSE_ERROR;      
       else
       {
          hr = pXMLDom->put_async(VARIANT_FALSE);
          if (FAILED(hr))
              strReturn = XML_PARSE_ERROR;
          else
          {
              hr = pXMLDom->put_validateOnParse(VARIANT_FALSE);
              if (FAILED(hr))         
                 strReturn = XML_PARSE_ERROR;
              else
              {
                  hr = pXMLDom->put_resolveExternals(VARIANT_FALSE);
                  if (FAILED(hr))
                    strReturn = XML_PARSE_ERROR;
                  else
                  {
                    if (bstr)
                      SysFreeString(bstr);
                    bstr = strXMLSource.AllocSysString();
                    pXMLDom->loadXML(bstr,&status); 
                    if (status!=VARIANT_TRUE)
                    {
                     strReturn = XML_PARSE_ERROR;         
                    }
                    else
                    {
                      strReturn = XML_PARSE_OK;
                    }
                  }
              }
              
          }
       }
       if (bstr)
         SysFreeString(bstr);
       CoUninitialize();  
       return(strReturn);
    }

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/10/20 16:18:00
     
     zybp1981 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:59
      门派:XML.ORG.CN
      注册:2005/10/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给zybp1981发送一个短消息 把zybp1981加入好友 查看zybp1981的个人资料 搜索zybp1981在『 XML源码及示例(仅原创和转载) 』的所有贴子 引用回复这个贴子 回复这个贴子 查看zybp1981的博客4
    发贴心情 
    'COMPONENT ID : PickupNoteValue
    'COMPONENT description :
    '  Get xml note value
    CString MBTIXML::PickupNoteValue(CString strQuery)
    {
     // You might need to add the msxml4/sdk/(inc, lib) directories
     // to the Tools->Options...->Directories in Visual Studio.
     //
     // You might also need to append "msxml2.lib" to the
     // Project->Settings...->Link->Object/Libray Modules field.
       IXMLDOMNode *pNode=NULL;
       BSTR bstr = NULL;   
       CString strReturn;

       // Query a single node.
       if (bstr)
         SysFreeString(bstr);
     
       bstr = strQuery.AllocSysString();
       pXMLDom->selectSingleNode(bstr, &pNode);

       if (!pNode)
       {
         strReturn = XML_NODE_ERROR;
       }
       else
       {
          if (bstr)
          SysFreeString(bstr);

          pNode->get_text(&bstr);
          strReturn = VariantString(bstr);
       }
       
       // release resource
       if (bstr)
         SysFreeString(bstr);
      
       if (pNode)
         pNode->Release();

       return(strReturn);
    }

    'COMPONENT ID : CountElement
    'COMPONENT description :
    '  Get xml element count

    int MBTIXML::CountElement(CString strQuery)
    {
       IXMLDOMNode *pNode=NULL;
       IXMLDOMNodeList *pNodeList= NULL;
       int    intCount = 0;

       pXMLDom->selectNodes(strQuery.AllocSysString(),&pNodeList);    
     
       pNodeList ->nextNode(&pNode);

       while (pNode)
       {
        intCount = intCount + 1;
        pNodeList->nextNode(&pNode);    
       } 
      
       if (pNodeList)
         pNodeList->Release();
       if (pNode)
         pNode->Release();
       return(intCount);
    }

    // Convert BSTR to CString
    CString MBTIXML::VariantString(BSTR str)
    {
       VARIANT var;
       CString ret;

       VariantInit(&var);
       V_BSTR(&var) = SysAllocString(str);
       V_VT(&var) = VT_BSTR;
       ret = var.bstrVal;
       return ret;
    }

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/10/20 16:20:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML源码及示例(仅原创和转载) 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/7/24 21:32:54

    本主题贴数4,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    78.125ms