2012-04-04 14 views
-2

私はWindowsサービスをC++で動作させようとしています。サービスは何も特別なことをしません@。サービスが実行されるコードは Windowsサービスの問題

int main(int argc, char** argv) { 

    if (argc != 1) return -1; 

    ofstream fTestFile; 
    fTestFile.open("C:\\ABC\\ServiceTest.txt", ios::app); 

    fTestFile << "argc=" << argc << endl; 
    for (int i=0;i <argc;i++) 
     fTestFile << "argv " << i << "=: " <<argv[i] << endl; 

    for (int i=0; i<100000; i++) { 
     fTestFile << i << ","; 
     if (i % 50 == 0) fTestFile << "\n"; 
     Sleep(10); 
    } 
    fTestFile << "\n"; 
    return 0; 
} 

私は、このサービスにservices.mscとを経由して「スタート」をクリックし

は、サービスを開始しようとしますが(1053年エラーが応答に時間がかかりすぎて)で失敗しています。 servicetest.txtファイルには、デバッグステートメントが表示されているようなデータがいくつか表示されていますが、2663までの数字が表示されます。

私が行方不明になっているステップはありますか?

+0

を読む

は申し訳ありませんが、私はあなたが実際にこの質問を編集し、あなたが作った間違いを修正することができ、エラー1053ない1503 – ababeel

+0

を意味しました。 – Jasonw

+0

あなたの 'main'に何かをしているだけではなく、サービスにもっと多くのことがあります。サービス制御機能を登録して、サービス制御マネージャーと通信する必要があります。表示されるエラーメッセージは、「プログラムを実行しましたが、メッセージに応答していません」というサービスコントロールマネージャからのメッセージです。 –

答えて

0

あなたのサービスを報告し、それが現在の状況だ更新するために、サービス・マネージャ(SERVICES.EXE)と通信する必要があるありがとうございました。ここhttp://msdn.microsoft.com/en-us/library/windows/desktop/ms687414%28v=vs.85%29.aspx

+0

'ServiceMain()'関数だけではなく、 'main()'関数でサービスを初期化して実行を開始させる必要があります。 –

関連する問題