2

私は初めて Windows サービスに取り組んでおり、いくつかの努力の結果、C++ でプログラムによってサービスをインストールおよびアンインストールできるようになりました。ServiceMain および ServiceControlHandler 関数の処理方法をガイドする多くのチュートリアルを見つけました。問題は、最初にサービスをインストールし、次に同じプログラムで ServiceMain および ServiceControlHandler 関数を適用することを示すチュートリアルがないことです。

つまり、両方の機能を同じコードに統合しようとしていますが、機能していません。

ここに私がたどったいくつかのリンクがあります

http://www.codeproject.com/Articles/499465/Simple-Windows-Service-in-Cplusplus

http://www.devx.com/cplus/Article/9857/0/page/2

http://msdn.microsoft.com/en-us/library/ms683500(v=vs.85).aspx

私のソース コードは、SERVICE_TABLE_ENTRY を作成して StartServiceCtrlDispatcher(ServiceTable) を呼び出す前に、サービスをインストールする関数を呼び出したことを除いて、上記の例のほぼ正確なコピーです。

サービスは正しくインストールされますが、実行が開始されることはありません。実際、ServiceMain が呼び出されることはありません。

環境: Windows 7 64 ビット言語 C++ Visual Studio 2008

4

1 に答える 1

3

少なくともリンクしたコードに基づいて、ServiceMain があり、(おそらく でmain) を呼び出しますCreateService

欠けていると思われるステップは、 を呼び出したStartService後の呼び出しCreateServiceです。

于 2013-08-28T06:57:43.463 に答える