1

タイトルはかなり一般的ですが、私の疑問は具体的です。サービスが実行する機能と同様に、サービスロジックコードをどこに記述するか(サービスコントロールハンドラーまたはServiceMain)について疑問があります。ServiceMainにありますか?私はMSDNでこれらのトピックを見て、サービスに関連しています。しかし、私を助けてくれませんでした http://msdn.microsoft.com/en-us/library/ms687414%28VS.85%29.aspx http://msdn.microsoft.com/en-us/library/ms685984% 28v = vs.85%29.aspx

基本的に、サービスを使用してWindowsでリッスンするソケットを開始したいと思います。このリスニングソケットロジックコードは、winexeユーティリティを使用してこのサービスをLinuxボックスからWindowsボックスに送信するため、サービスファイルに含まれます。現在、winexeはWindowsでwinexesvcサービスファイルを送信します。したがって、最終的には、既存のwinexesvcサービスを置き換えて、Windowsで送信されたときに特定のポート機能でリッスンを実行するようにします。(サービススケルトンは同じままですが、ロジックを実行するタスクは変更されますよね?)足りないものがあれば教えてください。前もって感謝します。

4

1 に答える 1

1

サービス制御ハンドラーは、サービスに送信される制御メッセージのみを処理する必要があります(リンクした例に示されているものはSERVICE_CONTROL_STOPとですSERVICE_CONTROL_INTERROGATE)。これらの制御メッセージは、環境からサービスに送信されます。

必要なすべての初期化が完了したら、サービスのロジックをServiceMain関数に実装する必要があります。投稿のURLの例では、サービスロジックコードがSvcInit関数に配置されています(これは、サービスのロジックを実装する関数の最も適切な名前ではない可能性があります)。

于 2012-12-25T11:35:59.257 に答える