Jer*_*dge 5 xml delphi exception delphi-xe2
我正在使用它TXMLDocument
来编写一个在Web服务器中使用的XML字符串.当服务器收到请求,生成XML,将其传递回客户端,然后组件被释放时,就会创建组件.但是,当这个组件被免费时,我得到了Invalid pointer operation
.
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;
Run Code Online (Sandbox Code Playgroud)
为什么我得到这个,我该如何摆脱它?
奇怪的是,虽然我可以确认Response.ContentText
实际上确实获得了XML,但由于某种原因,Web服务器在此异常之后无法将此数据返回给客户端 - 但我认为这是一个不同的因果关系问题.
PS - CoInitialize(nil)
并且CoUninitialize
因为Web服务器是多线程的而且TXMLDocument
是COM 而被调用此处理程序.
它在constructor's
参考文献中说明:
在释放对其IXMLDocument接口的所有引用时,在没有所有者的情况下在运行时创建的TXMLDocument组件将自动释放.
由于您Owner
在TXMLDocument
构造函数调用中指定了no ,因此不应自行释放它.
归档时间: |
|
查看次数: |
1410 次 |
最近记录: |