【发布时间】:2011-01-05 01:53:34
【问题描述】:
我目前正在将现有的 Delphi 5 应用程序移植到 Delphi 2010。
这是一个加载到 Outlook 中的多线程 DLL(其中线程由 Outlook 生成)。当通过 Delphi 2010 编译时,每当我关闭一个表单时,我都会在 TMonitor.Destroy 中遇到“无效指针操作”……就是 system.pas 中的那个。
由于这是一个现有的并且有点复杂的应用程序,我有很多 的方向要研究,而 delphi 帮助甚至没有记录几乎没有记录这个特定的TMonitor 类开始(我将其追溯到一些带有附加信息的 Allen Bauer 帖子)......所以我想我先问问是否有人以前遇到过这个问题,或者对可能导致这个问题的原因有任何建议。
作为记录:我没有在我的代码中明确使用 TMonitor 功能,我们在这里谈论的是 Delphi 5 代码的直接移植。
编辑问题发生时的调用栈:
System.TMonitor.Destroy
System.TObject.Free
Forms.TCustomForm.CMRelease(???)
Controls.TControl.WndProc(???)
Controls.TWinControl.WndProc((45089, 0, 0, 0, 0, 0, 0, 0, 0, 0))
Forms.TCustomForm.WndProc(???)
Controls.TWinControl.MainWndProc(???)
Classes.StdWndProc(15992630,45089,0,0)
Forms.TApplication.ProcessMessage(???)
【问题讨论】:
-
我的立场是正确的。我相信 F1 会带我去那里。傻我。 :-)
标签: delphi delphi-2010 tmonitor