Delphi 7服务的Application.DelayInitialize替代方案?
Delphi 7是否有Application.DelayInitialize的替代方案?我正在尝试创建一个Delphi7服务,它承载一个COM服务器,但它不起作用,我相信这是因为我没有使用Application.DelayInitializeDelphi 7服务的Application.DelayInitialize替代方案?,delphi,delphi-7,dcom,Delphi,Delphi 7,Dcom,Delphi 7是否有Application.DelayInitialize的替代方案?我正在尝试创建一个Delphi7服务,它承载一个COM服务器,但它不起作用,我相信这是因为我没有使用Application.DelayInitialize 我使用BCB6编写了几个COM托管服务,它们在Win9x以后的所有Windows版本中都可以正常工作,因此我不得不多次处理相同的问题 只需在Win2003+上的进程启动时不调用Application.Initialize(),等待TService的OnSt
我使用BCB6编写了几个COM托管服务,它们在Win9x以后的所有Windows版本中都可以正常工作,因此我不得不多次处理相同的问题 只需在Win2003+上的进程启动时不调用
Application.Initialize()
,等待TService
的OnStart
或OnExecute
事件调用它即可。这样,服务API在初始化任何COM对象之前运行
诀窍是仅在Win2003+上且仅在服务实际运行时延迟对Application.Initialize()的调用。如果出现以下情况之一,请勿延迟通话:
该服务在2003年以前的Windows版本上运行
正在(取消)安装服务时
当COM对象正在(取消)注册时
在这些情况下,通常在进程启动时调用Application.Initialize()
因此,您需要检查操作系统版本和命令行参数,以了解何时正确调用Application.Initialize()
。我使用BCB6编写了几个COM托管服务,它们在Win9x以后的所有Windows版本中都能正常工作,因此我不得不多次处理相同的问题
只需在Win2003+上的进程启动时不调用Application.Initialize()
,等待TService
的OnStart
或OnExecute
事件调用它即可。这样,服务API在初始化任何COM对象之前运行
诀窍是仅在Win2003+上且仅在服务实际运行时延迟对Application.Initialize()的调用。如果出现以下情况之一,请勿延迟通话:
该服务在2003年以前的Windows版本上运行
正在(取消)安装服务时
当COM对象正在(取消)注册时
在这些情况下,通常在进程启动时调用Application.Initialize()
因此,您需要检查操作系统版本和命令行参数,以了解何时正确调用Application.Initialize()
。我认为我的服务需要执行X。它不执行X。是否有替代执行X的方法?我理解正确了吗?除此之外,你是如何诊断问题的。你能清楚地说明问题是什么吗?我相信我的服务需要做X。它不能做X。除了做X,还有其他选择吗?我理解正确了吗?除此之外,你是如何诊断问题的。你能把问题说清楚吗。