我正在使用德尔福 XE。我在使用 Delphi Soap 时遇到了内存泄漏问题。结果是由于缺少 .Free call in TWSDLLookup.Destroy
,如QC 91160中所述
我遇到的问题是所描述的解决方法,它只是添加FLookup.Free
到TWSDLLookup.Destroy
方法中。
我不想更改 Delphi 源,所以我尝试将单元复制到我的项目文件夹,进行更改并重新编译,如Tom's answer 中所述。这种技术的问题在于,它显然只有在您还重新编译所有相关单元时才有效。我尝试仅复制WSDLLookup.pas
到我的项目目录,但出现 Stackoverflow 错误。我不熟悉 Web 服务/SOAP,所以我不知道如果我使用这种技术我应该复制哪些其他单元。
Rob Kennedy 在同一页上的回答描述了一种涉及代码挂钩的不同技术——但它似乎不适用于对象方法。我已按照他的建议完成并下载了 TNT Unicode 控件的免费代码并找到了相关程序,但我一直无法找到有关如何挂钩对象方法的信息——如果这确实可行的话。如果我能做到这一点,我会挂接TWSDLLookup.Destroy
并添加FLookup.Free
呼叫。
任何有关如何解决此问题的想法将不胜感激。我是一个新手程序员,所以我希望我错过了一些明显的东西?