簡體   English   中英

FreeConsole,然后AttachConsole無法正常工作

[英]FreeConsole then AttachConsole not working

我正在Windows上使用Visual Studio 2013中的C ++控制台應用程序。

首先,我使用FreeConsole分離了控制台,它可以工作; 然后,我嘗試使用AttachConsole將其附加回去,但沒有任何反應-

#include <psapi.h>

DWORD winpid = GetCurrentProcessId(); // get pid
std::cout << winpid; // it works    
FreeConsole(); // console lost
std::cout << "Lost to the bit bucket"; //nothing happen, as expected
AttachConsole(winpid); // try find the console back....
std::cout << "c"; // ... but failed

我如何找回丟失的控制台?

當您調用FreeConsole()時,您的控制台將不復存在。 您無法調用AttachConsole(),因為沒有要附加的內容。 您應該改用AllocConsole()創建一個新的控制台,然后像這樣“附加”到它:

AllocConsole();
FILE* f;
freopen_s(&f, "CONOUT$", "w", stdout);

然后稍后釋放控制台:

fclose(f);
FreeConsole();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM