首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何干净利落地中止Delphi程序?

如何干净利落地中止Delphi程序?
EN

Stack Overflow用户
提问于 2009-07-26 16:09:31
回答 5查看 13.4K关注 0票数 19

我有一个程序,它在关机期间遇到了一些问题,引发了一些我无法追溯到其来源的异常。它似乎是与时间相关的,并且是不确定的。这是在所有共享资源被释放之后发生的,因为它已经关闭,内存泄漏不是问题,所以我想知道是否有任何方法可以在释放共享资源后立即静默地告诉程序终止,而不是继续关闭序列并给出异常消息框。

有人知道怎么做吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-07-26 18:41:04

在查看了Delphi运行时库源代码和Microsoft文档之后,我可以证实Mason和Paul-Jan的评论。

关闭的层次结构如下

代码语言:javascript
复制
  Application.Terminate()
    performs some unidentified housekeeping of application
    calls Halt()

  Halt()
    calls ExitProc if set
    alerts the user in case of runtime error
    get rid of PackageLoad call contexts that might be pending
    finalize all units
    clear all exception handlers
    call ExitprocessProc if set
    and finally, call ExitProcess() from 'kernel32.dll'

  ExitProcess() 
    unloads all DLLs
    uses TerminateProcess() to kill the process
票数 19
EN

Stack Overflow用户

发布于 2009-07-26 16:50:23

ExitProcess(0)?

票数 6
EN

Stack Overflow用户

发布于 2009-07-26 17:05:03

Halt(0)曾经是一种很好的老式方式,用来告诉程序立即结束。现在可能有一种对Delphi更友好的方法来实现这一点,但我95%确定halt(0)仍然有效。:-)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1184929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档