我们有一个使用 Delphi 5 开发的应用程序,由于某些在这里并不重要的原因,我们无法升级到 Delphi 6 或更高版本。
前段时间我们不得不在那个应用程序中实现 XML 处理,我决定复制我们为使用 Delphi 6 的其他应用程序所做的实现。
一切都很顺利。我将 Delphi 6 源代码(msxml.pas、xmldoc.pas、msxmldom.pas 等)翻译为 Delphi 5。必须对每个文件进行细微调整(例如删除变体使用)。它有效,但我在释放内存方面遇到了一些问题。
我相信这个问题与 Delphi 5 和 Delphi 6 如何实现接口有关。我只是将接口及其实现从 Delphi 6 复制到 5。Delphi 没有正确释放内存。调试代码我们确定问题的根源在于TXMLDocument.ReleaseDoc
XMLDoc.pas。似乎这条线FDOMDocument := nil
没有释放它应该做的内存。
有人可以给我一些帮助吗?如果我们不能解决这个问题,我们将不得不使用另一个 XML 库重新编码整个事情。