一個簡單的服務管理程序,用于創建/修改/刪除Win32服務(未涉及內核服務,如tcpip,afd等)。
除此之外可以作為服務的宿主,命令行為:
"ServiceHost.exe" service "somedll.dll" "arg1" "arg2" ......
somedll.dll需要導出Start,Stop,Continue,Pause,Shutdown(可選,用于處理系統關閉事件),RequestStop(可選,用于服務主動要求停止)
函數原型:
DWORD WINAPI Start(int argc, TCHAR * const *argv); // 參數argv[n]即為arg1,arg2,...,返回0表明成功,其它值表明失敗
DWORD WINAPI Stop();
DWORD WINAPI Shutdown();
DWORD WINAPI Pause(); // 返回0表明成功,其它值表明失敗
DWORD WINAPI Continue(); // 返回0表明成功,其它值表明失敗
DWORD WINAPI RequestStop(DWORD (CALLBACK*)(DWORD dwErrorCode)); // 參數是一個函數指針。服務在啟動時,DLL中的RequestStop(如果存在的話)將被調用,DLL可保存此函數指針。服務成功啟動后,在任何需要的時候,DLL都可以通過調用此函數指針來主動要求停止服務(參數dwErrorCode為錯誤代碼,dwErrorCode為0表明無錯誤)
可執行文件 源代碼