win32和MFC下如何使用控制台窗口

   在win32和MFC程序中,有时需要输出一些调试信息,本文介绍在win32和MFC程序中使用控制台输出信息的方法。我们可以在应用程序里使用AllocConsole()函数自己开一个控制台(就像DOS窗口一样),然后重定向输入输出,就可以用printf函数向控制台输出信息了,具体方法如下:

   在CWinApp的重载函数InitInstance()中输入如下语句,开辟一个控制台并重定向输出

      AllocConsole();                                          // 开辟控制台
      SetConsoleTitle(_T("Debug Output"));      // 设置控制台窗口标题
      freopen("CONOUT$","w",stdout);             // 重定向输出

      注意在VS2008下重定向可能需要如下这么写,没有试验过,大家可以试一下。

      FILE* pf;
      freopen_s(&pf,"CONOUT$","w",stdout);

  记着,一定要在CWinApp的重载函数ExitInstance()中调用如下语句释放控制台。

      FreeConsole();

 

 

  下面是基于一个简单的对话框程序(工程名:TestConsole)的测试例子,在CTestConsoleApp类中重载InitInstance()并在该函数中输入:

      AllocConsole();                                          // 开辟控制台
      SetConsoleTitle(_T("Debug Output"));      // 设置控制台窗口标题
      FILE* pf;                                                  
      freopen_s(&pf,"CONOUT$","w",stdout);   // 重定向输出

  然后在CTestConsoleApp类中重载ExitInstance()并在该函数中输入:

      FreeConsole();

  通过资源编辑器为对话框添加一个测试按钮,并在按钮响应函数CTestConsoleDlg::OnBnClickedTest()函数中输入:

      printf("%s/n", "TestConsole!");

 

  程序启动后会看到一个对话框和一个控制台窗口,如下所示:

程序启动界面

    点击"Test"按钮后将在控制台中输出"TestConsole!",如下所示

 程序结果

  

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值