3

を使用してatlサービスを登録しようとしています

ExeName.exe /サービス

ここで説明されているように: http://msdn.microsoft.com/en-us/library/74y2334x(VS.80).aspx

しかし、それを行った後、サービス コントロール パネル (vista のスタート ボックスに「サービス」と入力して表示されるパネル) に表示されません。

/service スイッチを処理する場所を確認するために atl コードを掘り下げようとしましたが、/RegServer と /UnregServer を処理するコードは見つかりましたが、見つかりませんでした。

これは以前は機能していましたが、以前にこのサービスを登録することができました。しかし、現在、その場所を移動しており、再度登録することはできません。ExeName.exe /service を実行すると、最初に /RegServer を実行するとローカル サーバーとして起動しますが、サービスとしてインストールしたいと考えています。

/service スイッチの処理がどこで行われるか知っていますか?

4

4 に答える 4

2

すぐに使用できる CAtlServiceModule::Install メソッドを使用して実行する場合、「/Service」、「/UnregServer」など、各引数に正しい大文字を使用する必要があります。

于 2011-01-08T00:09:39.487 に答える
1

JaredPar と同じように、完全な管理者権限で Power Shell を使用してコマンドを試してください。

于 2009-01-21T00:44:21.243 に答える
1

暗闇で撮影: Vista で実行していますか? その場合は、完全な管理者権限で実行していることを確認してください。それ以外の場合は、仮想化を介してこのアプリを登録している可能性があります。

于 2008-11-06T15:58:00.163 に答える
0

atlbase.hで定義されたクラスCAtlServiceModuleTの関数ParseCommandLineの名前に誤っていくつかの文字を入力していないことを確認してください。

そうすると、基本クラスにもこの関数のバージョンがあります。これは、すべてがうまくコンパイルされることを意味し、この重大な間違いを見つけるのに1日かかる可能性があります。

;-)

于 2008-11-06T16:29:31.613 に答える