程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> Windows服務編寫原理及探討(1)

Windows服務編寫原理及探討(1)

編輯:vc教程

有那麼一類應用程序,是能夠為各種用戶(包括本地用戶和遠程用戶)所用的,擁有用戶授權級進行管理的能力,並且不論用戶是否物理的與正在運行該應用程序的計算機相連都能正常執行,這就是所謂的服務了。

(一)服務的基礎知識

Question 1. 什麼是服務?它的特征是什麼?

在NT/2000中,服務是一類受到操作優待的程序。一個服務首先是一個Win32可執行程序,如果要寫一個功能完備且強大的服務,需要熟悉動態連接庫(Dlls)、結構異常處理、內存映射文件、虛擬內存、設備I/O、線程及其同步、Unicode以及其他的由WinAPI函數提供的應用接口。當然本文討論的只是建立一個可以安裝、運行、啟動、停止的沒有任何其他功能的服務,所以無需上述知識仍可以繼續看下去,我會在過程中將理解本文所需要的知識逐一講解。

第二要知道的是一個服務決不需要用戶界面。大多數的服務將運行在那些被鎖在某些黑暗的,冬暖夏涼的小屋子裡的強大的服務器上面,即使有用戶界面一般也沒有人可以看到。如果服務提供任何用戶界面如消息框,那麼用戶錯過這些消息的可能性就極高了,所以服務程序通常以控制台程序的形式被編寫,進入點函數是main()而不是WinMain()。

也許有人有疑問:沒有用戶界面的話,要怎樣設置、管理一個服務?怎樣開始、停止它?服務如何發出警告或錯誤信息、如何報告關於它的執行情況的統計數據?這些問題的答案就是服務能夠被遠程管理,Windows NT/2000提供了大量的管理工具,這些工具允許通過網絡上的其它計算機對某台機器上面的服務進行管理。比如Windows 2000裡面的“控制台”程序(mmc.exe),用它添加“管理單元”就可以管理本機或其他機器上的服務。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved