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 に答える