int _tmain(int argc, _TCHAR* argv[]) { SERVICE_TABLE_ENTRY dispatchTable[]= {
{TEXT(SZSERVICENAME),(LPSERVICE_MAIN_FUNCTION)Service_Main}, {NULL,NULL} }; //StartServiceCtrlDispatcher(dispatchTable); if((argc==2)&&(*argv[1]=='-')) { if(_tcscmp(_T("install"),argv[1]+1)==0) { installService(); } else if(_tcscmp(_T("remove"),argv[1]+1)==0) { removeService(); } else if(_tcscmp(_T("debug"),argv[1]+1)==0) { //bDebugServer=true; //debugService(argc,(char**)argv); } else {//如果未能和上面的如何参数匹配,则可能是服务控制管理程序来启动该程序。立即调用 //StartServiceCtrlDispatcher 函数。 printf("%s - install to install the service \n",SZAPPNAME); printf("%s - remove to remove the service \n",SZAPPNAME); printf("%s - debug to debug the service \n",SZAPPNAME); printf("\n StartServiceCtrlDispatcher being called.\n"); printf("This may take several seconds.Please wait.\n"); bool ret=StartServiceCtrlDispatcher(dispatchTable);