打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
用AllocConsole()创建的外挂console能用c++的cout进行输出操作吗?
userphoto

2017.09.28

关注
    现在Windows编程一般都使用窗口程序设计,即GUI模式。但有时我们需要输出一些信息用于调试或查看某些状态,以前我都是在窗口上加一个Edit控件,然后把需要的信息输出到Edit控件里,但这样严重影响了应用程序的美观。现在,我们可以在应用程序里自己开一个控制台(就像DOS窗口一样),然后重定向输入输出,就可以用printf函数向控制台输出信息了,具体方法如下。
AllocConsole();
freopen("CONOUT$","w+t",stdout);
freopen("CONIN$","r+t",stdin);

执行以上三个函数后,如果没有错误就会出现一个控制台,并且重定向了输入输出,然后就可以使用printf了。

最后,不要忘记FreeConsole();关闭控制台。

https://stackoverflow.com/questions/20158478/freopen-sconout-and-fclose
#include <WinSock2.h>#include <iostream>int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow) {    UNREFERENCED_PARAMETER(hPrevInstance);    UNREFERENCED_PARAMETER(nCmdShow);#ifdef _DEBUG    AllocConsole();#else    AttachConsole(ATTACH_PARENT_PROCESS);#endif    FILE* pCout;    freopen_s(&pCout, "conout$", "w", stdout); //returns 0    fclose(pCout);#ifdef _DEBUG    system("pause");#endif    FreeConsole();    return 0;}

Should I not attempt to close conout$ at the end of the program? Is the exception being thrown because the file pointer is shared between processes for all console output?

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
MFC程序打开控制台
给GUI程序加入控制台窗口 方便调试
Cocos2dx 学习笔记(1)
在GUI程序中使用控制台的两种方法
WinForm程序启动控制台窗口Console
MFC 利用控制台输出调试信息
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服