I use CreateProcess() to open the cmd. It works fine if I use ascii, but when I try to use wide characters it doesnt work
int res;
HANDLE Entrada_Rd = nullptr;
HANDLE Entrada_Wr = nullptr;
HANDLE Saida_Rd = nullptr;
HANDLE Saida_Wr = nullptr;
SECURITY_ATTRIBUTES sa;
wchar_t* ptrRespTerm = Resposta;
unsigned long long alocTam = 0;
DWORD tamRespTerm = 0;
sa.nLength = sizeof sa;
sa.lpSecurityDescriptor = 0;
sa.bInheritHandle = 1;
if (!CreatePipe(&Saida_Rd, &Saida_Wr, &sa, 0))
// error
if (!SetHandleInformation(Saida_Rd, HANDLE_FLAG_INHERIT, 0))
// error
if (!CreatePipe(&Entrada_Rd, &Entrada_Wr, &sa, 0))
// error
if (!SetHandleInformation(Entrada_Wr, HANDLE_FLAG_INHERIT, 0))
// error
PROCESS_INFORMATION pi;
STARTUPINFOW si;
ZeroMemory(&pi, sizeof pi);
ZeroMemory(&si, sizeof si);
si.cb = sizeof si;
si.hStdError = Saida_Wr;
si.hStdOutput = Saida_Wr;
si.hStdInput = Entrada_Rd;
si.dwFlags |= STARTF_USESTDHANDLES;
res = CreateProcessW(L"C:\\WINDOWS\\system32\\cmd.exe", 0, 0, 0, 1, 0, 0, 0, &si, &pi);
Is there a way to make it work with wchar_t input and also output the text in wchar_t?