【发布时间】:2018-03-04 17:02:56
【问题描述】:
我想编写一个按 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);
它有效。
我的问题是为什么第一种方法不起作用?
【问题讨论】:
-
DWORD pid = atio(argv[1]);会更好(即使 atoi 很糟糕,它也比将 char 指针转换为 DWORD 更糟糕) -
argv[1] 是一个字符串 (char *) 你应该把它转换成一个 int。
-
虽然不是那么糟糕的问题(好的 OP 应该阅读警告,但也许他/她正在使用 Turbo C :))
标签: c process operating-system terminate