Delphi 5を使用して開発されたアプリケーションがありますが、ここでは重要ではない理由により、Delphi6以降にアップグレードすることはできません。
少し前に、そのアプリケーションにXML処理を実装する必要があり、Delphi6を使用して他のアプリケーション用に作成した実装をコピーすることにしました。
すべてがうまくいった。Delphi 6のソース(msxml.pas、xmldoc.pas、msxmldom.pasなど)をDelphi 5に変換しました。各ファイルに対して微調整を行う必要がありました(たとえば、Variantsの使用を削除するなど)。それは機能しましたが、メモリの解放に関していくつかの問題に直面しています。
この問題は、Delphi5とDelphi6がインターフェイスを実装する方法に関連していると思います。インターフェイスとその実装をDelphi6から5にコピーしました。Delphiがメモリを適切に解放していません。コードをデバッグすると、問題の原因はTXMLDocument.ReleaseDoc
XMLDoc.pasにあると判断しました。その行FDOMDocument := nil
は、本来のメモリを解放していないようです。
誰かが私にこれについていくつかの助けを与えることができますか?これを修正できない場合は、別のXMLライブラリを使用してすべてを再コーディングする必要があります。