gpt4 book ai didi

c++ - FreeConsole 然后 AttachConsole 不工作

转载 作者:行者123 更新时间:2023-11-28 05:28:22 25 4
gpt4 key购买 nike

我在 Visual Studio 2013 中使用 C++ 控制台应用程序,在 Windows 上工作。

首先,我使用 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();

关于c++ - FreeConsole 然后 AttachConsole 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40059618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com