C++ 在MFCGUI应用程序中,我希望在控制台窗口中显示正在进行的进程的信息。帮我解决这个问题

C++ 在MFCGUI应用程序中,我希望在控制台窗口中显示正在进行的进程的信息。帮我解决这个问题,c++,winapi,mfc,C++,Winapi,Mfc,工作的简化形式在按钮点击处理程序中给出。窗口中未显示样本输出。在这件事上帮帮我 void CConsoleWriteExDlg::OnBnClickedButtonConsole() { if (::AllocConsole()) { HANDLE hOutConsole = ::GetStdHandle(STD_OUTPUT_HANDLE); DWORD bytes_written;

工作的简化形式在按钮点击处理程序中给出。窗口中未显示样本输出。在这件事上帮帮我

    void CConsoleWriteExDlg::OnBnClickedButtonConsole()
    {
        if (::AllocConsole())
        {
            HANDLE hOutConsole = ::GetStdHandle(STD_OUTPUT_HANDLE);
            DWORD bytes_written;
            ::WriteConsole(hOutConsole, "Sample Output", sizeof(TCHAR) * strlen("Sample Output"), &bytes_written, NULL);
            ::FreeConsole();
        }
    }
使用点运算符和参考变量打开(调用)控制台。该代码段为推导留下了空间,但您似乎是在直接调用函数。尝试创建一个实例并调用该实例的函数

通过为控制台实例定义引用变量来创建控制台实例(因此调用构造函数,不确定句柄是否足以实例化它)。如果希望控制台继续存在,请相应地选择要在其中创建控制台的函数


希望这有帮助

我建议您尝试此项目:

AllocConsole调用成功吗?WriteConsole的返回值是多少?写入的字节的值是多少?FreeConsole()没有关闭控制台,因此您甚至看不到结果?FreeConsole():我可以看到输出保留为断点@FreeConsole。那么不使用FreeConsole不是解决了问题吗?没有解决stijn。控制台窗口将打开,但写入控制台会写入一些垃圾邮件,而不是示例输出。它是一个使用win32 api调用的MFC应用程序。控制台窗口打开了,但没有打印我想要的内容我读了十几遍这个答案,坦白地说,我完全不知道它想说什么。。。