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

转载:http://blog.csdn.net/rabbit729/article/details/4774201


在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!",如下所示

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学生选课代码中的win32mfc是两种不同的编程框架。 Win32是一种基于Windows操作系统的应用程序编程接口(API),它提供了一系列函数和工具,用于开发应用程序。Win32编程基于C语言,是一种底层编程框架,需要开发者自行处理窗口和消息的创建、处理和管理。它的优势在于对底层细节有很好的控制,可以编写高效、灵活的应用程序,但需要对Windows操作系统的输入、输出、内存管理等方面有深入了解。 MFC(Microsoft Foundation Class)是微软开发的一种在Windows平台上的C++应用程序框架。它提供了一系列类和函数,使开发者能够更快速、简便地开发Windows应用程序。MFC封装了Win32 API,提供了更高层次的抽象和封装,开发者只需要使用MFC提供的类和函数,就能够创建窗口、处理消息等,无需关注底层细节。MFC具有易用性好、开发效率高的优点,也适合快速开发小型应用程序。 在学生选课代码中,如果选择使用Win32编程,开发者可以有更大的灵活性和控制权,能够根据具体需求进行精细调整,但需要花费更多时间和精力处理底层细节。而选择MFC编程,则可以快速方便地进行应用开发,节省开发时间,但可能会有一些性能损失,因为MFC在提供便捷性的同时对底层细节进行了封装。因此,选择使用哪种编程框架,应该根据具体需求和开发者的技术水平来决定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值