首页 > 其他分享 >UI项目中显示控制台

UI项目中显示控制台

时间:2024-03-14 21:35:19浏览次数:21  
标签:fp FreeConsole 关闭 项目 UI freopen 控制台

在UI项目中显示控制台。

以下在Windows系统上使用MFC创建控制台,默认Qt的操作也是一样的,包括其他的C++ UI库,因为这里只涉及API操作。

在UI项目中创建控制台,需要注意:

1、控制台资源属于系统资源,他是一个独立的进程。

2、一个控制台创建后,他被绑定到当前的App进程中,一个进程只能绑定一个控制台资源。

看下代码:

// 在你需要的位置编写函数内的代码,来创建一个控制台
void MyThread::OpenConsole(WPARAM wparam, LPARAM lparam) { AllocConsole(); freopen_s(&fp[0], "CONOUT$", "w+", stdout); freopen_s(&fp[1], "CONIN$", "r+", stdin); }

freopen_s 他的参数:

1、FILE* 用于指向控制台的资源句柄。

2、表示输出的目标,因为是控制台,所以就是上面的写法,如果不是控制台,比如你想在执行printf等操作的时候,输出到文件,那么这个参数就可以写成文件的名字,例如:“1.xtx"

3、标准输入输出模式。

执行此代码后,UI程序将会创建一个控制台,并且绑定到当前进程,所执行的标准输入输出,都将会在控制台中显示和完成。

下面看一下,如何关闭控制台,(不能直接X掉控制台,因为这会导致主程序结束):

// 在你需要的位置编写函数内的代码,来关闭一个控制台
void MyThread::ColseConsole(WPARAM wparam, LPARAM lparam) { fclose(fp[0]); fclose(fp[1]); FreeConsole(); }

要关闭控制台,只FreeConsole是不够的,需要关闭他的文件句柄,然后再使用FreeConsole来分离进程。

执行此函数后,控制台将会自动关闭,并且不会影响主程序的运行。

标签:fp,FreeConsole,关闭,项目,UI,freopen,控制台
From: https://www.cnblogs.com/Super-biscuits/p/18074025

相关文章

  • 在工厂项目中,我是用这个读取PLC数据的
    ApachePLC4X软件介绍ApachePLC4X旨在创建一组库,以统一的方式与工业级可编程逻辑控制器(PLCs)进行通信。目前,支持以下语言:JavaGoC(尚未可用)Python(尚未可用)C#(.Net)(已废弃)功能特点PLC4X设计目标之一是为开发人员提供简化的API,隐藏底层通信细节,以便与各种......
  • python下载win32gui的库失败解决教程
    1、进入这个网站https://www.lfd.uci.edu/~gohlke/pythonlibs/界面如下:因为这些安装包都是按照字母顺序排序的,所以就向下翻到pywin32的位置就行;选择跟自己的python版本相对应的这个库的版本,点击即可下载;等待下载完成:2、进入到pycharm软件里面,运用命令实现库的安装python-......
  • 千帆AppBuilder使用指南-个人中心(上)
    我的应用概述您可根据业务需求和使用场景,基于不同官方应用快速完成个人应用的创建,完成创建的个人应用将全部展示于【我的应用】,您可对已发布的个人应用进行在线网页分享体验和API调用。管理我的应用您可通过应用列表,快速查看和管理所有您个人创建的应用。应用配置点击「......
  • 有来团队后台项目-解析9
    animate.css安装pnpmianimate.css--save引入//main.tsimport'animate.css';使用<scriptsetuplang="ts">import{ref}from"vue";importvariablesfrom"@/styles/variables.module.scss";defineProps<......
  • 有来团队后台项目-解析8
    UnoCss介绍UnoCss官网UnoCss官网安装pnpmadd-Dunocss引入vite.config.tsimportUnoCSSfrom'unocss/vite'//plugins中引入UnoCSS({/*options*/}),创建uno.config.ts//uno.config.tsimport{defineConfig,presetAttributify,presetIco......
  • 基于SpringBoot实现企业技术员工测评考试管理系统演示【附项目源码+论文说明】
    基于SpringBoot实现企业技术员工测评考试管理系统演示摘要社会的发展和科学技术的进步,互联网技术越来越受欢迎。网络计算机的生活方式逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。互联网具有便利性,速度快,效率高,成本低等优点。因此,构建符合自己要求的操作系......
  • 基于springboot实现网页时装购物系统演示【附项目源码+论文说明】
    基于springboot实现网页时装购物系统演示摘要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,时装购物系统当然也不能排除在外。时装购物系统是以实际运用为开发背景,运用软件工程原理和开发方法,采用springboot......
  • 基于springcloud实现鲜花订购网微服务演示【附项目源码】
    基于springcloud实现鲜花订购网微服务演示JAVA简介Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(EnterpriseJavaBeans)的全面支持,javaservletAPI,JSP(javaserverpages),和XML技术。Java是一种计算机编程语言,具有封装、继承和多态性三个......
  • android项目运行流程
    android项目运行流程三步 第一步:查清单AndroidManifest.xmlandroid项目核心在app的src的main里java是代码,res是资源有很多xml,然后AndroidManifest.xml是清单这是AndroidManifest.xml,在里面找到category.LAUNCHER-->里面的activity的名称就是我们要访问的第二步:跳到Main......
  • 【趣味项目】一键生成LICENSE
    【趣味项目】一键生成LICENSE项目地址:GitHub(最新版本)|GitCode(旧版本)项目介绍一款用于自动生成开源项目协议的工具,可以通过npm进行安装后在命令行使用,非常方便使用方式npminstall@xxhls/get-license-gget-license--license=mit技术选型typeScript:支......