2010-11-23 6 views
1

定期的に実行されるC++アプリケーションを作成したいと思います。 Windowsサービスとよく似ています。 C++でWindowsサービスを作成することは可能ですか?はいの場合はどうですか?Windowsサービス(C++)

これに関するチュートリアルはありますか?

EDIT:Windowsサービス用のインストーラはどのように作成できますか?

答えて

2

別の答えに示されているように、あなたは、通常のC++プログラム(mainで始まる)を作成し、というのWindowsを伝えるためにStartServiceCtrlDispatcherのWin32 APIを呼び出す必要がありますこのプログラムをサービスとして実行したいとします。 this function can be found in MSDNに関するいくつかの情報

また、Windowsサービスコントロールパネルにサービスをインストールするように、サービスをインストールする必要があります。もちろん、アンインストール機能も提供する必要があります。通常、3つの機能(すなわち、インストール、アンインストールおよび実行)はすべて単一の実行可能ファイルで処理される。これらの3つの違いは、コマンドラインパラメータによって示されます。

使用しているVC++のバージョンを指定していません。管理された.NETコードを使用する場合は、WindowsサービステンプレートがVisual Studioにあらかじめ組み込まれているため、非常に簡単です。

しかし、VC++ 6(または100%アンマネージドコード)を使用している場合は、多くの低レベルの詳細を知る必要があります。 ATLまたはMFCのノウハウ(以前のバージョンのコンパイラ/ランタイムを使用している場合)によって、選択肢が異なります。

これはcreating Windows Services using C++の良いチュートリアルです。

+0

これはこれに関するいくつかの良い記事です。 1.http://msdn.microsoft.com/en-us/library/ms685967%28VS.85%29.aspx 2.devx.com/cplus/Article/9857/1954 – sid

+0

どのように私はWindowsサービスのインストーラを作成できますか? – sid

+0

@sydは、使用するインストーラによって異なります。あなたが最小限のもので行くならば、個々のサービスのコマンドラインインストールは非常に簡単です。 – Jaywalker

2

C++は、従来のアプローチが動作するCと十分に互換性があります。アプリケーションは通常のC++プログラム(mainで始まる)としてビルドします。起動時にStartServiceCtrlDispatcherに電話して、プログラムがサービスとして実行できることをOSに通知します。 Windowsはクラスを内部的に使用することに気にしません。

0

もちろん可能です。可能なだけでなく、ネイティブAPIが設計されているものです(実際はCですが、十分に近い)。

を参照してくださいジェフリヒターの著書「Windows 2000用のプログラミングサーバー側アプリケーション」

0

多分私は遅れていますが、私は作成するWindowsサービスのためのC++クラスを作成し、共有コード をしたい、あなたは必要な私の基本クラスからクラスを継承cWinService http://sprogram.com.ua/en/articles/how-write-service-for-windows-with-cpp

ください。あなたが何か観察しているなら私に連絡してください。 私はちょうど勉強しているC++のウィザードではありません;)

関連する問題