在Win32 App上工作,想要输出到Win32窗口和控制台窗口

时间:2015-10-28 23:02:34

标签: c++ winapi console glut

我已经通过这个网站和其他网站上的帖子看得相当透彻,似乎大多数答案来自几年前。我正在寻找创建一个使用OpenGL功能的Win32 C ++应用程序。以前我通过将重要的C ++代码函数移植到Win32控制台应用程序来调试这些程序。此时,我需要能够在与GLUT窗口交互时通过输出调试到控制台窗口。所以,我正在寻找的是一种从Win32 main生成两个窗口的方法 - 一个持有GLUT功能(正常的Win32),一个持有控制台输出(不是Win32项目应用程序原生)。这甚至可能吗?如果没有,有人可以建议一个用于调试交互式GLUT程序的链接吗?

Matt S.

1 个答案:

答案 0 :(得分:3)

您可以通过劫持父进程控制台或分配新控制台来将控制台添加到GUI程序中:

if (! AttachConsole(ATTACH_PARENT_PROCESS))   // try to hijack existing console of command line
    AllocConsole();                           // or create your own.

DWORD nw,nr;    // demo with windows native console i/o 
char buff[32]; 
WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), L"Hello Matthew !", 15, &nw, NULL); 

如果您没有预见控制台上的输入,这可以正常工作。

如果您更喜欢使用流输出而不是本机Windows控制台功能,那么您对此SO question

感兴趣