У меня есть простое консольное приложение, предоставляющее мне некоторые предварительные функциональные возможности в Visual Studio 2010. Оно порождает другие дочерние процессы (хотя и ожидает завершения этих дочерних процессов.
Когда я запускаю приложение за пределами Visual Studio, все его сообщения и т. Д. Появляются в окне консоли (т. Е. Стандартный вывод). Однако, когда я запускаю это приложение под VS, я не вижу ничего из вывода в окне сборки.
Кто-нибудь знает, почему это так?
Очень раздражает.
Редактировать : При дальнейшей проверке мне удалось отобразить стандартный вывод моего приложения, но выход дочерних процессов не отображается. Есть идеи?
Я перенаправляю stdout дочерних процессов, используя следующий код:
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;
}