首页 > 解决方案 > 使用 TlHelp32 库时,如何将正在运行的进程列表打印到控制台?

问题描述

想象一下这个函数:

void OutputAllRunningProcessNames()
{
    HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    PROCESSENTRY32 procEntry;
    procEntry.dwSize = sizeof(procEntry);
    Process32First(hSnap, &procEntry);
    do
    {
        std::cout << *(const char*)procEntry.szExeFile << std::endl;
    } while (Process32Next(hSnap, &procEntry));
    return;
}

我希望这会给我一个所有进程名称的列表,但是我只得到每个进程名称的第一个字母。我正在打印 procEntry.szExeFile,转换为 const char* 并取消引用,我如何告诉机器继续读取 szExeFile 指向的地址,直到它到达空终止符?谢谢。

标签: c++windows

解决方案


停止取消引用指针并将指针传递给std::cout.

std::cout << (const char*)procEntry.szExeFile << std::endl;

推荐阅读