我想在 Windows 上用 C++ 将程序的进程 ID(通过程序本身)写入文件(首选二进制文件)。
我看到函数的使用:GetProcessId,但我没有设法使用它。
1)如何使用?
2) 如何将值转为二进制并写入文件?
谢谢
最佳答案
您可以使用 GetCurrentProcessId()
获取当前进程的进程ID。然后你可以使用ultoa
使用基 2
(和大小为 sizeof(DWORD) * 8 + 1
)的缓冲区将该数字转换为字符串,然后您可以使用 ofstream
或 fwrite
将其写入文件。
例子:
DWORD id = GetCurrentProcessId();
char buf[sizeof(DWORD) * 8 + 1];
ultoa(id, buf, 2);
ofstream f("file.txt");
f << id;
我假设“将值转换为二进制”是指将其转换为表示形式,这样当您打开文件时,它看起来像 1001011110101
或其他内容。如果你只是想把它看成一个数字,那么不要使用 itoa
而是做剩下的。
关于二进制的 C++ Windows 进程 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7378605/