我有一個簡單的控制檯應用程序,爲我提供了Visual Studio 2010中的一些預生成功能。它繼續產生其他子進程(儘管等待終止這些子進程在Visual Studio中捕獲控制檯應用程序的輸出
當我在Visual Studio外部運行應用程序時,它的所有消息等都出現在控制檯窗口(即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;
}
除非您另有說明,否則不要子進程自動繼承其父母的標準I/O句柄? – ChrisV 2011-01-20 16:03:34