Вывод stdout командной строки в переменную

Помогите пожалуйста, как можно вывести stdout командной строки в буфер? Пытался сделать так, но не работает

#include <windows.h>
#include <iostream>

#define BUFSIZE 4096

int main()
{
    // PROCESS
    char Process[] = "cmd.exe";
    STARTUPINFO sinfo;
    PROCESS_INFORMATION pinfo;
    memset(&sinfo, 0, sizeof(sinfo));
    sinfo.cb = sizeof(sinfo);
    sinfo.dwFlags = (STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW);
    CreateProcess(NULL, LPWSTR(Process), NULL, NULL, TRUE, 0, NULL, NULL, &sinfo, &pinfo);

    // Вывод
    DWORD dwRead, dwWritten;
    CHAR chBuf[BUFSIZE];
    ReadFile(sinfo.hStdOutput, chBuf, BUFSIZE, &dwRead, NULL);
    std::cout << chBuf << std::endl;
    //
    
    WaitForSingleObject(pinfo.hProcess, INFINITE);
    CloseHandle(pinfo.hProcess);
    CloseHandle(pinfo.hThread);

    return 0;
}

Ответы (0 шт):