我有一个奇怪的问题:我的Delphi应用程序在启动Application.CreateForm调用之后引发了一个EOutOfRessources异常。有人在那里,谁解决了这个问题?
奇怪的事情是
该申请是在D7下开发的;操作系统是WinXP SP3。
感谢您的帮助
---更新1 ---
应用程序使用EurekaLog来捕获异常并存储错误信息。它说,EOutOfRessources发生在Application.CreateForm上(已经创建了大约50个表单,还有一些其他形式待创建),消息是“超出系统资源”。异常地址是7C81EB2E。
EurekaLog还提供了调用堆栈:
|*Exception Thread: ID=2088; Priority=0; Class=; [Main] |
|-----------------------------------------------------------------------|
|7C81EB2E|kernel32.dll| | | | |
|77D56C4F|user32.dll | | |CreateIcon | |
|7C9205D4|ntdll.dll | | |RtlAllocateHeap | |
|7C9110ED|ntdll.dll | | |RtlLeaveCriticalSection| |
|77D2058E|user32.dll | | |SystemParametersInfoA | |
|77D205A3|user32.dll | | |SystemParametersInfoA | |
|7C809AE4|kernel32.dll| | |VirtualAllocEx | |
|7C809AA2|kernel32.dll| | |VirtualAllocEx | |
|7C809A94|kernel32.dll| | |VirtualAlloc | |
|0060E359|_765013.exe |_765013.dpr| | |235[58]|
|7C91E64C|ntdll.dll | | |NtSetInformationThread | |
-------------------------------------------------------------------------
总内存使用量约为60 MB;该应用程序有大约20 MB的使用。
我不知道使用的把手数量; EurekaLog不提供此功能。
---更新2 ---
现在我们用另一台相同类型的PC交换了PC。例外没有再次提出。但是,我们对另一台机器产生了类似的影响,现在无法在Application.CreateForm期间打开文件。文件名字符串为空...在一些穷人重置(电源关闭)后,问题就消失了。
我们怀疑,例外是由网络问题引起的。在这个客户,我们运行了四个应用程序(每两个相同的项目)。他们通过公司网络共享数据;为此,有一个NAS。网络登录在Windows启动时完成,大约在启动应用程序前2分钟。 远程服务也在公司网络上运行。
现在的问题是,如果Application.CreateForm试图连接到网络。我们的OnCreate事件处理程序不需要开放式网络。 应用程序的源代码也在NAS上(由TrueCrypt加密)。编译后,我们将EXE和所有其他所需文件复制到本地硬盘驱动器并从该位置运行应用程序。通常,TrueCrypt容器已关闭。 可能会发生,EXE正在NAS上搜索一些文件。 TrueCrypt容器?
也许,有人熟悉这些问题。谢谢你的帮助。