Delphi 5を使用して開発されたアプリケーションがありますが、ここでは重要ではないいくつかの理由でDelphi 6以降にアップグレードすることはできません。なぜDelphi 6のMSXMLライブラリはDelphi 5でメモリをリークしますか?
しばらく前に私たちは、そのアプリケーションにXML処理を実装しなければならなかった、と私たちは
すべてがうまくいったのDelphi 6を使用して他のアプリケーションのために作られた実装をコピーすることを決めました。 Delphi 6のソース(msxml.pas、xmldoc.pas、msxmldom.pasなど)をDelphi 5に翻訳しました。各ファイルでマイナー調整を実行する必要がありました(Variantsの削除など)。それはうまくいったけど、私はメモリ解放に関するいくつかの問題に直面している。
私は問題がデルファイ5とDelphi 6、インターフェイスを実装する方法に関連していると信じています。私は、インターフェイスとその実装をDelphi 6から5にコピーしました.Delphiはメモリを適切に解放していません。コードのデバッグでは、問題の原因がXMLDoc.pasのTXMLDocument.ReleaseDoc
にあると判断しました。行FDOMDocument := nil
のように見えるメモリが解放されていません。
誰でも私にこれに関するいくつかの助けを与えることができますか?これを修正できない場合は、別のXMLライブラリを使用してすべてをコード化する必要があります。
もう1つ...コードのデバッグでは、問題の原因が** XMLDoc.pas **のTXMLDocument.ReleaseDoc **上にあることがわかりました。 'FDOMDocument:= nil;'という行のように見えるメモリが解放されていません。 – zedmartins
ようこそスタックオーバーフロー。コメントに新しい情報を追加するのではなく、質問を編集して新しい情報をそこに入れることができます。 –