我想写一个程序,用Id杀死进程。 当我通过name.exe [pid]运行它时,它无法正常工作。这是我的代码:
#include <sstream>
#include <string>
#include <stdlib.h>
void setProcessName (pid_t pid, std::string name)
{
std::ostringstream cmd;
cmd << "/usr/bin/lsappinfo setinfo " << pid;
cmd << " --name \"" << name << "\"";
system (cmd.str().c_str());
}
当我不写行
时 int main(int argc, char *argv[])
{
DWORD pid = argv[1];
HANDLE handleOfMyProcess = OpenProcess(PROCESS_TERMINATE, FALSE, pid);
TerminateProcess(handleOfMyProcess, 5);
}
并将pid号作为第三个参数,例如1243:
DWORD pid = argv[1];
它有效。
我的问题是为什么第一种方式不起作用?
答案 0 :(得分:2)
因为main的参数是字符串,所以不能直接将参数赋给 <xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:template match="description">
<xsl:analyze-string select="."
regex="(\w+)\s+=\s*Computer name">
<xsl:matching-substring>
<xsl:value-of select="regex-group(1)" />
</xsl:matching-substring>
<xsl:non-matching-substring>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:template>
</xsl:stylesheet>
;你将不得不转换它。
DWORD
的定义表明了这一点:
main
您可以使用int main(int argc, char *argv[]);
转换它:
atoi
你必须打开编译器的警告,因为编译器会给你一个警告