0

Windows SDK の指示に従って、最初のサービス アプリケーションを作成しようとしています。次のコードを使用してサービスをインストールしました。

SC_HANDLE schs=CreateService(sch,
                             SERVICENAME,"VMFS - Servidor de arquivos",
                             SC_MANAGER_CREATE_SERVICE,
                             SERVICE_WIN32_OWN_PROCESS,
                             SERVICE_AUTO_START,
                             SERVICE_ERROR_NORMAL,
                             pathexe,
                             NULL/*LoadOrderGroup*/,
                             NULL/*TagId*/,
                             NULL/*Dependencies*/,
                             NULL/*Account:Local System*/,
                             NULL/*Password*/);

サーバーが起動しません (エラー 1053)。

しかし、services.msc に移動し、サービスを自分のアカウント名 (Valdeci) としてログオンするように変更すると、サービスが開始されます。したがって、これはログオン エラーのようです。なにが問題ですか?Windows XP と Vista でもサービスを実行したいのですが、開発中のマシンに Windows 7 が搭載されているため、実行しませんでした。

4

2 に答える 2

1

CreateServiceのドキュメントで説明されているように、「。\\LocalSystem」の代わりにNULLを使用してみてください。

于 2012-08-18T14:13:52.307 に答える
0

問題を解決しました!私は受け取ったヒントに従いました。コードを「何もしない」サービスに変更しましたが、それでも機能しませんでした。したがって、問題はコード自体ではないと結論付けました。DLL が「見つからない」ため、プログラムは起動さえしませんでした。LocalSystem として実行すると「パス」の動作が異なることがわかったので、すべてのランタイム DLL をサービスのフォルダーにコピーしました。これは私が通常プログラムをインストールする方法ですが、開発時にはこのパスを使用します。

御時間ありがとうございます!

于 2012-08-22T10:33:02.670 に答える