加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 09:05:12 所属栏目:大数据 来源:网络整理
导读:我有点疑惑为什么,当你在Delphi XE2中创建一个新的服务应用程序时,它是否包含这3个可视组件单元? Vcl.ControlsVcl.DialogsVcl.Graphics 据我所知,这些单位中没有任何服务需要的东西.我可以看到Graphics单元可能用于某种图像处理,但这是开发人员实现它的问题
我有点疑惑为什么,当你在Delphi XE2中创建一个新的服务应用程序时,它是否包含这3个可视组件单元?

Vcl.Controls
Vcl.Dialogs
Vcl.Graphics

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

解决方法

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

有趣的是,自Windows Vista / Seven以来,服务不再能够将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.pas和Dialogs.pas单位.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读