首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >释放时TXMLDocument‘无效指针操作’

释放时TXMLDocument‘无效指针操作’
EN

Stack Overflow用户
提问于 2013-08-03 16:19:15
回答 1查看 1.9K关注 0票数 5

我正在使用TXMLDocument编写一个XML,该字符串用于web服务器。当服务器接收到请求时创建组件,生成XML,将其传回客户端,然后组件被释放。然而,当这个组件是空闲的,我得到Invalid pointer operation

代码语言:javascript
复制
  XML:= TXMLDocument.Create(nil);
  try
    XML.Active:= True;
    nRoot:= XML.AddChild('topics');
    for X := 0 to FCHM.Topics.Count - 1 do begin
      nTopic:= nRoot.AddChild('topic');
      //Add more data...

    end;
    Response.ContentText:= XML.XML.Text;
    Response.ContentType:= 'text/xml';
    XML.Active:= False;
  finally
    XML.Free; //<-- Invalid pointer operation
  end;

我为什么要得到这个,我怎么摆脱它?

奇怪的是,虽然我可以确认Response.ContentText确实获得了XML,但由于某种原因,web服务器在此异常之后未能将数据返回给客户端--但我假设这是另一个原因/效果问题。

由于web服务器是多线程的,而CoInitialize(nil)是COM的,所以在此处理程序中调用PS - CoUninitializeTXMLDocument

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-03 16:21:13

它在constructor's引用中有说明:

在没有所有者的情况下在运行时创建的TXMLDocument组件将在释放对其IXMLDocument接口的所有引用时自动释放。

由于您在Owner构造函数调用中没有指定任何TXMLDocument,所以不应该自己释放它。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18034839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档