У меня есть простое консольное приложение, предоставляющее мне некоторые функции предварительной сборки в Visual Studio 2010. Он продолжает порождать другие дочерние процессы (хотя ждет завершения этих дочерних процессов .Захват вывода консольного приложения в визуальной студии
Когда я запускаю приложение за пределами визуальной студии, все его сообщения и т. Д. Появляются в окне консоли (например, stdout). Однако, когда я запускаю это приложение под VS, я не вижу ни одного вывода в сборке окно.
кто-нибудь знает, почему это?
его очень раздражает.
Редактировать: При дальнейшей проверке мне удалось отобразить вывод моего приложения, но не было показано, что дочерние процессы не отображаются. Есть идеи?
Я перенаправлять стандартный вывод дочерних процессов, используя следующий код:
STARTUPINFO si;
GetStartupInfo(&si);
si.dwFlags = STARTF_USESTDHANDLES;
si.hStdError = GetStdHandle(STD_ERROR_HANDLE);
si.hStdInput = GetStdHandle(STD_INPUT_HANDLE);
si.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);
PROCESS_INFORMATION pi;
// Create the process.
if (!CreateProcess(applicationName.GetCStr(), cmd.CStr(), NULL, NULL, TRUE, 0, NULL, workingDir.GetCStr(), &si, &pi))
{
// Failed to create process!!
return false;
}
Не дочерние процессы автоматически наследуют стандартные дескрипторы ввода/вывода своих родителей, если вы не сказали иначе? – ChrisV