【发布时间】:2013-08-03 16:19:15
【问题描述】:
我正在使用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;
为什么我会得到这个,我该如何摆脱它?
奇怪的是,虽然我可以确认 Response.ContentText 确实获得了 XML,但由于某种原因,Web 服务器在此异常之后未能将此数据返回给客户端 - 但我假设这是不同的原因/结果问题。
PS - 围绕此处理程序调用 CoInitialize(nil) 和 CoUninitialize,因为 Web 服务器是多线程的,TXMLDocument 是 COM。
【问题讨论】:
标签: xml delphi exception delphi-xe2