Вывод 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;
}