MFC调用CMD控制台

 

复制代码
    BOOL b=AllocConsole();//创建控制台
    //一个进程只能创建一个console,多次调用会返回FALSE;而且,这个窗口是个独立的控制台窗口
    //返回值:如果函数成功,则返回值为非零值.如果该函数失败,则返回值为零

    HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);//获得控制台输出句柄
    //看:https://www.cnblogs.com/liming19680104/p/17002845.html 

    TCHAR ch[] = _T("我是中国人");
    int len = lstrlen(ch);

    BOOL b1 = WriteConsole(hStdout, ch, len, NULL, NULL);//在控制台输出
    //看:https://www.cnblogs.com/liming19680104/p/17002845.html 


    CloseHandle(hStdout); //释放输出句柄


    TCHAR Buffer[100];         //开缓存
    memset(Buffer, 0, 100);
    DWORD dwCount = 0;        //已输入数
    
    HANDLE hdlRead = GetStdHandle(STD_INPUT_HANDLE);    //获得控制台输入句柄
    ReadConsole(hdlRead, Buffer, 100, &dwCount, NULL);  //从控制台输入缓冲区读取字符输入,并将其从缓冲区中删除
    //参数1:控制台输入缓冲区的句柄
    //参数2:指向接收从控制台输入缓冲区读取数据的缓冲区的指针
    //参数3:要读取的字符数。 lpBuffer 参数指向的缓冲区的大小应至少nNumberOfCharsToRead * sizeof(TCHAR)为字节
    //参数4:要读取的字符数,第四个参数必须指定,否则会无法读取
    //参数5:指向 CONSOLE_READCONSOLE_CONTROL 结构的指针,该结构指定要向读取操作末尾发出信号的控制字符。 此参数可以为 NULL
    //        此参数默认需要 Unicode 输入。 对于 ANSI 模式,请将此参数设置为 NULL
    //返回值:如果该函数成功,则返回值为非零值。    如果函数失败,则返回值为零
    
    AfxMessageBox(Buffer);

    CloseHandle(hdlRead);  //释放输入句柄

    //BOOL b=::FreeConsole();//关闭控制台
    //执行这条指令时会中断,不知道什么原因,请知道的告诉我一下,请底部留言
复制代码

 

 

 

 

 

posted @   天子骄龙  阅读(279)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2022-02-14 halcon-copy_matrix复制矩阵
2022-02-14 halcon-create_matrix创建一个矩阵
2022-02-14 halcon-矩阵
2022-02-14 halcon-get_domain获取图像的区域
2020-02-14 python-opencv-视频的读取与分解
2019-02-14 表格控件QTableWidget
2019-02-14 pyqt5--列表控件QListWidget
点击右上角即可分享
微信分享提示