我在D7写了一个Windows服务。直到今天它才完美无缺 不想发布。
在事件日志中,我收到错误:
错误应用程序名称:XServ12.exe,版本:0.0.0.0,时间戳:0x2a425e19 错误模块名称:KERNELBASE.dll,版本:6.1.7600.16385,时间戳:0x4a5bdbdf 异常代码:0x0eedfade 故障偏移:0x0000b727 错误进程id:0xbb4 故障应用程序启动时间:0x01cca43b2aee203a
我在某处读到可能是单元初始化部分的问题。 好吧,我已经从项目中删除了几乎所有单位,并留下:Sysutils,CLasses,Dialogs。当Dialogs.pas单元存在时,我删除它时仍然出现错误,程序成功进入项目dpr部分的开头。
此外,即使我拥有所有这3个单位并且只需手动运行exe它就可以完全启动。当我尝试从系统服务运行服务时,只发生错误...
如果我重新启动计算机,一切正常。 ...
有什么想法吗?
答案 0 :(得分:8)
0x0eedfade
可能是在Delphi进程之外传播的unhandled Delphi exception。
如果在Dialogs单元中链接时只存在问题,那么它的初始化或它所依赖的任何单元的初始化可能会引发一个未处理的异常并从Delphi进程中逃脱。
这可能与服务在隔离会话中运行(如this document中所述)并且无法再访问Windows UI子系统(站点,桌面,窗口)这一事实有关。换句话说,忘记interactive services。