私は ATL サービスを作成しました。テスト中は、永久に実行される while ループを残して、単純に実行し続けました (以下のコードを参照)。
HRESULT Run(_In_ int nShowCmd = SW_HIDE)
{
m_running = true;
HANDLE thread = (HANDLE)_beginthreadex(NULL, 0, &MyFunctionToRunInTheService, 0, 0, 0);
while(m_running);
return CAtlServiceModuleT::Run(nShowCmd);
}
実際のサービスとして実際に実行する準備ができましたが、これを行う方法がわかりませんか? 私は次のすべてを見てきましたが、ATL サービスの例を 1 つ見つけることができないようです。
スレッドコードを削除してメソッドを直接呼び出すと、サービスは常に開始状態になります。ループを削除すると、サービスが開始され、すぐに停止します。何か提案はありますか?