2

这不是一个编程问题,而是一个配置问题。

我有一个用 Delphi 编写的EXE。不是我的。我可以直接从快捷方式运行它,并且运行良好。如果我尝试设置计划任务,它每次都会崩溃

模块 [文件] 中 [十六进制地址] 的访问冲突。读取地址 00000000

无论我运行任务还是让计划运行任务都会发生这种情况。

现在有趣的部分。这发生在Windows 7 32bit上。它在WindowsXP的任务调度程序中运行良好。

我启用了DEP,并将兼容性设置为XP sp3。我将调度程序服务设置为与桌面交互,即使它在 7 中并不真正可用。

为任务设置的用户与我登录时使用的用户相同。

该程序设置为仅在用户登录时运行,因为它具有UI组件

我愿意尝试任何事情,因为负责此操作的供应商只告诉我它应该可以正常工作,并且我们从他们那里使用的所有其他项目都可以在没有任何崩溃的情况下运行。

编辑:添加一些请求的信息:
1.如果它是一项服务,则不需要任务计划程序。它是对存储在数据库中的文档进行条形码扫描的常规 GUI。
2.供应商和我一样卡住了。并且不愿意付出很多努力来解决这个问题。今年我们将远离它们,因此它可能最终成为一个有争议的问题。

4

1 回答 1

3

您的消息 ( Read of address 00000000) 中的错误地址是空指针异常。在 Delphi 中,它通常发生在您尝试在创建之前访问对象实例(例如,组件)时。

除此之外,您没有提供任何可用于帮助您解决问题的信息。您没有提供有关应用程序类型(服务、常规 GUI 应用程序、控制台应用程序)的信息,除了它是用 Delphi 编写的,有一个 UI 组件(允许 Vista 之前的服务)并且它正在由调度程序启动。你有关于它做什么的信息,或者关于应用程序本身的任何其他细节,这可能会有所帮助。

向供应商发送错误对话框的屏幕截图,并询问他们是否看起来“工作正常”。建议他们投资一个异常处理包,例如MadExceptEurekaLog将给他们一个可读格式的堆栈跟踪,您可以将其发送给他们,以便他们可以使用它来追踪问题。如果他们不愿意这样做,那就找一个新的供应商。

于 2012-09-20T19:45:04.353 回答