gpt4 book ai didi

Delphi XE2 新服务 - 为什么它包含这些 VCL 单元?

转载 作者:行者123 更新时间:2023-12-03 15:22:31 28 4
gpt4 key购买 nike

我有点困惑,为什么当你在Delphi XE2中创建一个新的服务应用程序时,它包含这3个视觉组件单元?

Vcl.Controls
Vcl.Dialogs
Vcl.Graphics

据我所知,这些单元中没有任何服务需要的东西。我可以看到图形单元可能用于某种图像处理,但这是开发人员实现它的问题。这些单元自动包含在新的服务应用程序中是否有某种原因?如果我删除它们,不会造成任何伤害......是吗?

最佳答案

这是由 IDE 代码生成器添加的,“以防万一”...IDE 主要创建表单,因此即使您的服务中不需要 UI,它也会将其添加到您的服务模块中。

有趣的是,从 Windows Vista/7 开始,服务不再能够向桌面发送 GDI 消息,即与其交互。因此,绝对不可能使用 Windows 服务中的对话框或 UI 控件。

事实上,甚至 SvcMgr.pas 也链接到 Forms.pas + Dialogs.pas 单元。因此,删除您自己的单元中的引用将继续链接这些单元。

当服务安装在服务器上时,SvcMgr.pas 似乎需要 Forms.pas + Dialogs.pas 单元来显示一些潜在的错误消息命令行。

事实上,您的服务 .exe 不仅仅作为服务在后台运行。它也可以像常规应用程序一样从命令行运行,以便安装/卸载/启动/停止服务。

您可以看看our lighter implementation of Windows services in Delphi - 但功能不一样 - 只是使用 API 的一些东西。此版本不链接到 Forms.pasDialogs.pas 单元。

关于Delphi XE2 新服务 - 为什么它包含这些 VCL 单元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9281888/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com