• 締切済み

サービスプログラムの作成方法

VC++2008にてプログラムを作成しています。 現在、ダイアログベースで作成していたプログラムを、 サービスプログラムへ変更しようとしているのですが、 サービスプログラム自体を作成したことがなく、 いろいろネットで読んでみたのですが、 分からないところがありすぎて困っています。 ちなみに、現在のダイアログベースのプログラムは、 CAsyncSocketとマルチスレッドを使用して クライアントPCと相互通信をするものです。 PostgreSQLアクセス用のODBCプログラムもあります。 (ですので、当然ながらダイアログは必要ありません) まず、VisualStudioにて新規プロジェクト→ Windowsサービスを選択し、プロジェクトを作りました。 元のプログラムから、cpp/hファイルを移行し、 CString等の変数をしようしているため、 stdafx.hに、 #define _AFXDLL #include <afxwin.h> 上記を追記し、ビルドしました。 Setupプロジェクトも追加し、 カスタム動作のインストール、アンインストールに、 プライマリ出力を追加し、引数をそれぞれ、 /Service、/UnregServerにし、インストールしてみましたが、 管理ツールのサービスには登録されませんでした。 Serviceプログラムがいけないのかと思い、 単純に新規プロジェクトを作成し、 Setupプロジェクトを追加して、設定したあと、 インストールしてみましたが、これでも登録されていませんでした。 なにか、他に設定等が必要なものがありますでしょうか? Windowsサービスでの作成については、 ネットに載っているのを見つけられなかったのですが、 ATLでのサービスにも挑戦してみました。 しかし、<afxsock.h>をインクルードする手段が みつからず、断念しました。 どちらかの手段で、サービスプログラムを 作成したいのですが、上記問題について、 アドバイスでもよろしいので、よろしくお願いします。

みんなの回答

  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.2

どっかで失敗してるかもしれないので、 printfなり挿入してエラーも無く完了してるかを見てみたらどうでしょう?

lhouse
質問者

補足

Windowsサービスの新規プロジェクト+ Setupプロジェクトのみで、他に何もクラス等を 追加しない状態で、インストールしてみましたが、 サービス登録がされません。 現時点では、私が作成したプログラムの問題以前に、 Setupプロジェクトの設定の問題のように思われるのですが。。。

回答No.1

> /Service、/UnregServerにし、インストールしてみましたが、 xxxWinService.cpp が自動生成されてないですか? この中の_tmain()の前に //サービスをインストールまたはアンインストールするには、"xxx.exe -Install [-u]" と入力してください。 という注釈があります。 _tmain()でサービス登録/削除をしています。

lhouse
質問者

補足

ご指摘の注釈はプロジェクト作成時に確認し、 「-Install」または「/Install」も試してみたのですが、 やはり、サービスには登録されていませんでした。