我编写的代码分配了一个控制台,并将基于MFC对话框的程序的输出重定向到该控制台。如果我关闭控制台窗口,它将关闭我的程序,我得到一个大的内存泄漏。有没有办法监听控制台关闭并停止向其发送数据?下面是我分配控制台并写入它的代码片段。在我的析构函数中,我调用了FreeConsole()
。
if (consoleEnabled)
{
AllocConsole(); //Allocate the console
FILE* pCout;
if (freopen_s(&pCout, "CONOUT$", "w", stdout) != 0) //redirect the stdout
{
this->consoleEnabled = false;
}
}
//in another function...
if (consoleEnabled)
{
std::cout << outputMsg << std::endl;
}