帮忙解释下代码,该怎么解决
帮忙解释下代码
完整代码在二楼
int main(int argc, char* argv[])
/*两形参我百度了意思差不多能懂 但是在这代码里它的实质定义在哪(相当于下面那句询问argc!=3 没猜错的话是这三句
void WINAPI ServiceMain(DWORD argc, LPTSTR *argv);//服务主函数
void WINAPI ServiceCtrlHandler(DWORD Opcode);//服务控制函数
oid WINAPI CmdStart(void);//要启动的程序函数
但是这三函数在哪被argc读到的 )*/
{
printf("\twindows based service demo\n");
if(argc!=3)//*****************************************为什么完整代码编译时不等于3
{
printf("usage: %s -install[remove]",argv[0]);
return 0;
}
if(strcmp(argv[1],"-install")==0) // 这同问在哪被读到的-install 并且 它为什么要相等
{
if(InstallService())
printf("\n\nService Installed Sucessfully\n");
else
printf("\n\nError Installing Service\n");
}
else if(strcmp(argv[1],"-remove")==0) // 删除
{
if(DeleteService())
printf("\n\nService remove sucessfully\n");
else
printf("\n\nError removing Service\n");
}
else
{
printf("\nusage: %s -install[remove]\n",argv[0]);
return 0;
}
------解决思路----------------------
C:\>sc
描述:
SC 是用于与
服务控制管理器和服务进行通信的命令行程序。
用法:
sc <server> [command] [service name] <option1> <option2>...
选项 <server> 的格式为 "\\ServerName"
可以键入 "sc [command]" 以获得命令的进一步帮助
命令:
query-----------查询服务的状态, 或
枚举服务类型的状态。
queryex---------查询服务的扩展状态, 或
枚举服务类型的状态。
start-----------启动服务。
pause-----------向服务发送 PAUSE 控制请求。
interrogate-----向服务发送 INTERROGATE 控制请求。
continue--------向服务发送 CONTINUE 控制请求。
stop------------向服务发送 STOP 请求。
config----------更改服务的配置(永久)。
description-----更改服务的描述。
failure---------更改服务失败时所进行的操作。
sidtype---------更改服务的服务 SID 类型。
qc--------------查询服务的配置信息。
qdescription----查询服务的描述。
qfailure--------查询服务失败时所进行的操作。
qsidtype--------查询服务的服务 SID 类型。
delete----------(从注册表)删除服务。
create----------创建服务(将其添加到注册表)。
control---------向服务发送控制。
sdshow----------显示服务的安全描述符。
sdset-----------设置服务的安全描述符。
showsid---------显示与
任意名称相对应的服务 SID 字符串。
GetDisplayName--获取服务的 DisplayName。
GetKeyName------获取服务的 ServiceKeyName。
EnumDepend------枚举服务的依存关系。
下列命令不要求服务名称:
sc <server> <command> <option>
boot------------(ok
------解决思路----------------------
bad) 表明是否将最后一次启动
保存为最后一次的正确启动配置
Lock------------锁定服务数据库
QueryLock-------查询 SCManager 数据库的 LockStatus
示例:
sc start MyService
是否要查看 QUERY 和 QUERYEX 命令的帮助? [ y
------解决思路----------------------
n ]:
n
完整代码在二楼
int main(int argc, char* argv[])
/*两形参我百度了意思差不多能懂 但是在这代码里它的实质定义在哪(相当于下面那句询问argc!=3 没猜错的话是这三句
void WINAPI ServiceMain(DWORD argc, LPTSTR *argv);//服务主函数
void WINAPI ServiceCtrlHandler(DWORD Opcode);//服务控制函数
oid WINAPI CmdStart(void);//要启动的程序函数
但是这三函数在哪被argc读到的 )*/
{
printf("\twindows based service demo\n");
if(argc!=3)//*****************************************为什么完整代码编译时不等于3
{
printf("usage: %s -install[remove]",argv[0]);
return 0;
}
if(strcmp(argv[1],"-install")==0) // 这同问在哪被读到的-install 并且 它为什么要相等
{
if(InstallService())
printf("\n\nService Installed Sucessfully\n");
else
printf("\n\nError Installing Service\n");
}
else if(strcmp(argv[1],"-remove")==0) // 删除
{
if(DeleteService())
printf("\n\nService remove sucessfully\n");
else
printf("\n\nError removing Service\n");
}
else
{
printf("\nusage: %s -install[remove]\n",argv[0]);
return 0;
}
------解决思路----------------------
C:\>sc
描述:
SC 是用于与
服务控制管理器和服务进行通信的命令行程序。
用法:
sc <server> [command] [service name] <option1> <option2>...
选项 <server> 的格式为 "\\ServerName"
可以键入 "sc [command]" 以获得命令的进一步帮助
命令:
query-----------查询服务的状态, 或
枚举服务类型的状态。
queryex---------查询服务的扩展状态, 或
枚举服务类型的状态。
start-----------启动服务。
pause-----------向服务发送 PAUSE 控制请求。
interrogate-----向服务发送 INTERROGATE 控制请求。
continue--------向服务发送 CONTINUE 控制请求。
stop------------向服务发送 STOP 请求。
config----------更改服务的配置(永久)。
description-----更改服务的描述。
failure---------更改服务失败时所进行的操作。
sidtype---------更改服务的服务 SID 类型。
qc--------------查询服务的配置信息。
qdescription----查询服务的描述。
qfailure--------查询服务失败时所进行的操作。
qsidtype--------查询服务的服务 SID 类型。
delete----------(从注册表)删除服务。
create----------创建服务(将其添加到注册表)。
control---------向服务发送控制。
sdshow----------显示服务的安全描述符。
sdset-----------设置服务的安全描述符。
showsid---------显示与
任意名称相对应的服务 SID 字符串。
GetDisplayName--获取服务的 DisplayName。
GetKeyName------获取服务的 ServiceKeyName。
EnumDepend------枚举服务的依存关系。
下列命令不要求服务名称:
sc <server> <command> <option>
boot------------(ok
------解决思路----------------------
bad) 表明是否将最后一次启动
保存为最后一次的正确启动配置
Lock------------锁定服务数据库
QueryLock-------查询 SCManager 数据库的 LockStatus
示例:
sc start MyService
是否要查看 QUERY 和 QUERYEX 命令的帮助? [ y
------解决思路----------------------
n ]:
n