2010-11-23 68 views
1

我想在C++中定期運行一個應用程序。很像一個Windows服務。是否有可能在C++中創建一個Windows服務。如果是的話如何?C++中的windows服務

這個任何教程?

編輯:我如何創建Windows服務的安裝程序?

回答

2

正如另一個答案表明,你需要創建一個普通的C++程序(從main),並調用StartServiceCtrlDispatcher的Win32 API來告訴窗口你想運行這個程序作爲一項服務。關於this function can be found in MSDN的一些信息。

此外,您需要一個機制來安裝您的服務,以便它出現在Windows服務控制面板中。當然,還應該提供一個卸載功能。通常,所有三個功能(即安裝,卸載和運行)都在一個可執行文件中處理。這三者的區別在於命令行參數。

你還沒有指出你使用的是什麼版本的VC++。如果您要使用託管的.NET代碼,那麼很容易,因爲Windows Service模板是預先構建到Visual Studio中的。但是,如果你要使用VC++ 6(或100%非託管代碼),那麼你需要知道很多低級細節。進一步的選擇取決於你的ATL或MFC的知識(如果你正在使用舊版本的編譯器/運行時)。

這可能是一個很好的教程creating Windows Services using C++

+0

這些都是一些很好的文章。 1.http://msdn.microsoft.com/en-us/library/ms685967%28VS.85%29.aspx 2.devx.com/cplus/Article/9857/1954 – sid 2010-11-24 09:37:38

2

C++與傳統方法工作的C相兼容。您將該應用程序構建爲正常的C++程序(從main開始);在啓動時,您可以撥打StartServiceCtrlDispatcher通知操作系統您的程序可以作爲服務運行。 Windows不關心你在內部使用類。

0

當然這是可能的。不僅可能,但這就是本機API的設計目的(嗯,C真的,但足夠接近)。

見傑夫里氏的書「適用於Windows 2000編程服務器端應用程序」