1

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

4

1 回答 1

3

你不能。您应该为每个服务提供自己的 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 将调用正确的函数。

于 2012-07-10T21:24:45.963 回答