【发布时间】:2014-08-19 06:58:30
【问题描述】:
好的,我正在使用 MSVS 2013 和 Qt(msvc2013+opengl 32bit)
我有用 Qt 和扩展 dll 编写的应用程序主窗口。主应用程序编写 qDebug()。但是扩展 dll 对 qDebug() 一无所知,所以我使用的是 std::cout。我找到了丑陋的解决方案:
void Console()
{
AllocConsole();
FILE *pFileCon = NULL;
pFileCon = freopen("CONOUT$", "w", stdout);
COORD coordInfo;
coordInfo.X = 130;
coordInfo.Y = 900;
SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coordInfo);
SetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE),ENABLE_QUICK_EDIT_MODE| ENABLE_EXTENDED_FLAGS);
}
在 main 我调用函数Console() 它在我的窗口附近给了我黑色的控制台。它不是很整洁,我也想按顺序查看事件,但我在应用程序输出和控制台中分别查看它们。
所以问题是:有没有办法从 dll 捕获所有 std::cout 输出并将其扔到应用程序输出?
【问题讨论】:
标签: c++ visual-studio qt visual-studio-2013