- PR -

アンマネージドC++によるWindowsサービスの開発

1
投稿者投稿内容
dsp
会議室デビュー日: 2005/07/22
投稿数: 3
投稿日時: 2005-07-22 22:57
はじめまして
回路系から来ましたWindows初心者のdspと申します。宜しくお願いします。

VisualStudio.NET2003で、アンマネージドC++で小さなWindowsサービスを
開発しようとしているのですが、下記の点が不明なため困っています。
ご教示いただけませんでしょうか?

(1)プロジェクトの作成
 「プロジェクトの新規作成」の中に、それらしいテンプレートが
見当たりません。どうしたらよいのでしょうか?

実は、2004-07-22に同じ質問があり、「ヘルプの中にSDKレベルの
サンプルがある」とコメントされているのですが、土地鑑がないため、
どこを探すべきかわかりません。もう少し詳しく教えていただけると
助かります。

(2)インストール
 開発したサービスは、開発環境に付属の,InstallUtil.exeで
インストールできるのでしょうか? それとも、別の手段が必要
なのでしょうか?
 InstallUtilのヘルプには、「アンマネージドC++で作成された
サービスはインストールできない」と記載されています。


以上、素人の質問ですが、何卒宜しくお願いします。

[ メッセージ編集済み 編集者: dsp 編集日時 2005-07-22 22:58 ]
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-07-23 08:38
引用:

dspさんの書き込み (2005-07-22 22:57) より:
VisualStudio.NET2003で、アンマネージドC++で小さなWindowsサービスを
開発しようとしているのですが、下記の点が不明なため困っています。


UnmanagedなServiceを作るためのテンプレートやフレームワークは一切提供されていません。全てWindows APIを直接呼び出すことで実現する事になります。
ControlServiceやCreateServiceを初めとする、Service Control Manager(SCM)APIについて調べてみてください。
dsp
会議室デビュー日: 2005/07/22
投稿数: 3
投稿日時: 2005-07-23 22:32
甕星さん ご回答ありがとうございます。

引用:

UnmanagedなServiceを作るためのテンプレートやフレームワークは一切提供されていません。全てWindows APIを直接呼び出すことで実現する事になります。
ControlServiceやCreateServiceを初めとする、Service Control Manager(SCM)APIについて調べてみてください。




やはりそうですか。
「UnmanagedなServiceを作る」こと自体が、「今後はお勧めではない」ということなのでしょうね。
ということは、具体的には、C++のWin32プロジェクト(?)で新規作成して、上記のAPIなどを使って、生成、消滅などのイベントを自分で実装すればよい、ということでしょうか?
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-07-24 01:22
引用:

UnmanagedなServiceを作るためのテンプレートやフレームワークは一切提供されていません。全てWindows APIを直接呼び出すことで実現する事になります。



VC7 から、ATL Servers が微力ながらサポートしてくれます。

また、フレームワークを利用してサービスを作ると、サービスの .exe を引数付きでコマンドライン起動すると、サービスのインストール/アンイストールが行われるようになっています。(最小限のことしかやってくれないので、不足なら自分で書き足しが必要です)

dsp
会議室デビュー日: 2005/07/22
投稿数: 3
投稿日時: 2005-07-25 00:10
渋木さん ありがとうございました

引用:

VC7 から、ATL Servers が微力ながらサポートしてくれます。

また、フレームワークを利用してサービスを作ると、サービスの .exe を引数付きでコマンドライン起動すると、サービスのインストール/アンイストールが行われるようになっています。(最小限のことしかやってくれないので、不足なら自分で書き足しが必要です)



この方法でインストールもできそうですね。調べて見ます。
ありがとうございました
1

スキルアップ/キャリアアップ(JOB@IT)