我想写一个程序,用Id杀死进程。当我通过name.exe [pid]运行它时,它无法正常工作。这是我的代码:
int main(int argc, char *argv[])
{
DWORD pid = argv[1];
HANDLE handleOfMyProcess = OpenProcess(PROCESS_TERMINATE, FALSE, pid);
TerminateProcess(handleOfMyProcess, 5);
}
当我不写线
DWORD pid = argv[1];
并以这种方式给出pid号作为第三个参数,例如1243:
HANDLE handleOfMyProcess = OpenProcess(PROCESS_TERMINATE, FALSE, 1243);
有用。
我的问题是为什么第一种方法不起作用?
因为main的参数是字符串,所以不能直接将参数赋给DWORD
;你将不得不转换它。
main
的定义显示了这一点:
int main(int argc, char *argv[]);
你可以用atoi
转换它:
DWORD pid= atoi(argv[1]);
并且您必须打开编译器的警告,因为编译器会给您一个警告