当前位置: 首页 > wzjs >正文

免费app制作网站今日大新闻

免费app制作网站,今日大新闻,怎么接网站开发外包,网站如何更新内容目录 什么是 GetStdHandle&#xff1f; 它长什么样&#xff1f; 怎么用它&#xff1f; 它跟 std::cout 有什么不一样&#xff1f; GetStdHandle 是一个 Windows API 函数&#xff0c;用于获取标准输入、标准输出或标准错误设备的句柄。它定义在 Windows 的核心头文件 <…

目录

什么是 GetStdHandle?

它长什么样?

怎么用它?

它跟 std::cout 有什么不一样?

GetStdHandle 是一个 Windows API 函数,用于获取标准输入、标准输出或标准错误设备的句柄。它定义在 Windows 的核心头文件 <windows.h> 中,通常用于控制台应用程序中,以便与标准输入输出流(如键盘输入或控制台输出)进行交互。

什么是 GetStdHandle?

GetStdHandle 函数的全称是 "Get Standard Handle"。 

  • Get":表示这是一个获取操作。

  • "Std":是 Standard(标准)的缩写,指的是标准输入、输出或错误流。

  • "Handle":指的是一个句柄(handle),在 Windows 中,句柄通常是对系统资源(如文件、窗口、输入输出流等)的一种引用或标识。

想象你在用 C++ 写程序时,经常用 std::cout 来输出文字到屏幕上,对吧?比如:

#include <iostream>
int main() {std::cout << "Hello, world!" << std::endl;return 0;
}

这里 std::cout 是一个“工具”,它负责把文字送到屏幕上。但在 Windows 系统中,如果你不用 C++ 的标准库,而是直接跟操作系统“对话”,就需要用到 Windows 提供的一些函数,其中 GetStdHandle 就是帮你拿到类似 std::cout 这样的“工具”的。

简单来说,GetStdHandle 是 Windows 给你的一个函数,它能让你拿到控制台的“钥匙”(专业术语叫“句柄”),有了这个钥匙,你就可以直接跟屏幕(或键盘)互动了。

它长什么样?

在 C++ 代码里,GetStdHandle 的样子是这样的:

HANDLE GetStdHandle(DWORD nStdHandle);
  • HANDLE: 这是“钥匙”的类型,类似于一个指针,但具体是什么暂时不用管,只要知道它代表某个东西就行。

  • DWORD: 这是 Windows 定义的一个数字类型,相当于 unsigned int,用来告诉函数你想要哪把“钥匙”。

  • nStdHandle: 你传给函数的参数,告诉它“我想要屏幕的钥匙”还是“键盘的钥匙”。

常见的选项有:

  • STD_OUTPUT_HANDLE(写成 -11):给我屏幕的钥匙,我想输出东西。(就是用来让程序往屏幕上打印内容)

  • STD_INPUT_HANDLE(写成 -10):给我键盘的钥匙,我想读输入。(就是用来让程序从键盘读取用户的输入)

  • STD_ERROR_HANDLE(写成 -12):给我错误输出的钥匙(也是屏幕,但可以单独用)。

怎么用它?

假设你想用 GetStdHandle 在屏幕上写“Hello, Windows!”,我们可以这样写:

#include <windows.h> // 必须包含这个头文件,里面有 Windows 的工具
#include <cstring>int main() {// 1. 拿到屏幕的“钥匙”HANDLE screen = GetStdHandle(STD_OUTPUT_HANDLE);// 2. 检查钥匙是不是拿到了if (screen == INVALID_HANDLE_VALUE) { // 如果钥匙是“坏的”return 1; // 出错了,退出程序}// 3. 用这个钥匙写东西到屏幕上const char* message = "Hello, Windows!\n";DWORD written; // 用来记录写了多少个字符WriteConsoleA(screen, message, strlen(message), &written, NULL);return 0;
}

一步步解释:

  1. 拿到钥匙:

    • GetStdHandle(STD_OUTPUT_HANDLE) 就像去问 Windows:“给我屏幕的钥匙吧!” 返回的 screen 是一个 HANDLE,你可以把它想象成一个工具的“ID”。

  2. 检查钥匙:

    • 如果程序没有屏幕(比如你关了控制台窗口),Windows 会给你一个“坏钥匙”(INVALID_HANDLE_VALUE),所以要检查一下。

  3. 用钥匙做事:

    • WriteConsoleA 是另一个 Windows 函数,专门用这个“钥匙”在屏幕上写东西。

    • 它需要:

      • screen: 你刚拿到的钥匙。

      • message: 你想写什么。

      • strlen(message): 写多少个字符。

      • &written: 记录实际写了多少(类似 C++ 的传引用)。

      • NULL: 最后一个参数先不用管,写 NULL 就好。

运行这个程序,你会在黑色的控制台窗口看到“Hello, Windows!”。

它跟 std::cout 有什么不一样?

  • std::cout 是 C++ 标准库提供的,简单好用,但它藏了很多细节,你不知道它是怎么跟屏幕沟通的。

  • GetStdHandle + WriteConsoleA 是直接跟 Windows 操作系统打交道,给你更多控制权。比如,你可以用它改变文字颜色,或者直接读键盘按键,而 std::cout 做不到这些。

http://www.dtcms.com/wzjs/243355.html

相关文章:

  • 丽江网架公司seo需要付费吗
  • 郴州市政府门户网站爱站网关键词查询系统
  • 免费建站平台哪个靠谱广州谷歌seo
  • 潍坊网站建设服务优化seo招聘
  • 微网站设计直通车推广计划方案
  • 合肥做网站怎么样有没有自动排名的软件
  • web网站开发技术说明seo基础优化包括哪些内容
  • 芜湖服装网站建设庆云网站seo
  • 广州网站优化公司东莞百度seo电话
  • 移动端企业网站自媒体运营
  • kesion系统做网站教程免费顶级域名申请网站
  • 网站建设-纵横网络营销网站建设选择
  • 政府网站asp源码软文范文大全
  • c 做的网站又哪些体验式营销案例
  • 独立网站模板下载西安关键词推广
  • 佛山网站推广优化怎样创建网站平台
  • 免费asp网站程序下载竞价推广开户
  • 北京网站建设华大网络营销策划推广公司
  • 天津建设厅官方网站网络竞价
  • 最好的网站建设哪家好批量查询指数
  • 城乡建设与管理委员会网站下载百度极速版免费安装
  • 简述网站首页制作过程教育机构培训
  • 怎么看一个网站是不是外包做的北京疫情太严重了
  • 台州seo网站排名杭州seo靠谱
  • 公司弄个网站多少钱重庆森林壁纸
  • 网站建设要与安全防护同步规划网络工具
  • 微信赌博链接网站建设北京网站优化常识
  • 做招聘图片的网站百度关键词价格计算
  • 哪里可以接一些网站项目做湖州网站seo
  • 在百度上做网站多少钱完美日记网络营销策划书