簡體   English   中英

C ++中的Windows服務

[英]windows service in c++

我想制作一個將定期運行的c ++應用程序。 很像Windows服務。 是否可以在C ++中創建Windows服務。 如果是,怎么辦?

任何教程嗎?

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

C ++與C足夠兼容,因此傳統方法可以工作。 您將應用程序構建為普通的C ++程序(從main開頭); 在啟動過程中,您調用StartServiceCtrlDispatcher來通知OS您的程序可以作為服務運行。 Windows不在乎您在內部使用類。

如另一個答案所示,您需要創建一個普通的C ++程序(以main開頭),並調用StartServiceCtrlDispatcher Win32 API來告知Windows您希望將該程序作為服務運行。 在MSDN中可以找到有關此功能的一些信息。

此外,您將需要一種機制來安裝服務,以使其顯示在Windows服務控制面板中。 當然,還應該提供卸載功能。 通常,所有三個功能(即安裝,卸載和運行)都在單個可執行文件中處理。 這三個方面的差異通過命令行參數指示。

您尚未指出要使用的VC ++版本。 如果使用托管的.NET代碼,則很容易,因為Windows Service模板已預先內置到Visual Studio中。

但是,如果要使用VC ++ 6(或100%非托管代碼),則需要了解許多底層細節。 其他選擇取決於您對ATL或MFC的了解(如果要使用較舊版本的編譯器/運行時)。

這可能是有關使用C ++創建Windows服務的很好的教程。

查看POCO C ++庫,該庫使您可以輕松編寫守護程序/服務。

http://pocoproject.org/docs/00100-GuidedTour.html

http://pocoproject.org/slides/190-Applications.pdf

也許我來晚了,但是我為Windows服務創建C ++類,並且想要共享代碼,您需要從我的基類cWinService中繼承您的類http://sprogram.com.ua/en/articles/how-write-service-for- Windows與CPP

如果有任何發現,請與我聯系。 我不是C ++向導,我只是研究;)

當然可以。 不僅可能,而且這就是本機API設計的目的(確實,C,但足夠接近)。

請參閱Jeff Richter的書“為Windows 2000編程服務器端應用程序”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM