【问题标题】:Single Executable and different services单一可执行文件和不同的服务
【发布时间】:2012-07-10 18:48:33
【问题描述】:

我想拥有多个服务的单个可执行部分。即服务的名称会不同,但可执行文件会不同。 如何识别ServiceMain中调用的是哪个服务

【问题讨论】:

  • 可执行文件不同?您可能的意思是可执行文件将是相同的。

标签: c++ windows-services


【解决方案1】:

你不能。 您应该为每个服务提供自己的 ServiceMain 函数。

http://msdn.microsoft.com/en-us/library/windows/desktop/bb540475%28v=vs.85%29.aspx上给出了一个例子。

当使用“INSTALL”参数运行此应用程序时,它使用 CreateService 函数将自己注册为服务。如果您的可执行文件提供多项服务,则需要多次调用 CreateService。

当应用程序在没有“INSTALL”参数的情况下运行时,它会填充一个 DispatchTable 并将其传递给 StartServiceCtrlDispatcher。如果您的可执行文件支持多种服务,您的 DispatchTable 将包含多个条目。为每个条目赋予不同的 ServiceMain 函数,Windows 将调用正确的函数。

【讨论】:

    猜你喜欢
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    相关资源
    最近更新 更多