我在使用 Delphi 创建的 C# 程序中使用了一个 activex 组件。它在很多时候都可以正常工作,但偶尔(有时经常!)组件会因以下异常而崩溃:
异常 EOSError(调用 OS 函数失败)(0)
在程序重新启动之前,这会使控件处于某种无法使用的状态。似乎没有任何押韵或理由能够重现该错误。
有任何想法吗?
如果您可以在受控环境中重现问题,则使用MadExcept 之类的工具从错误情况中获取调用堆栈信息可能有助于追踪问题的确切原因。
在过去(< Windows NT),当您的机器资源不足时,有时会发生上述错误。您的 ActiveX 控件是否有可能泄漏窗口句柄?像 MemProof 这样的工具可能会帮助你追踪这些。