谁能解释一下 HANDLE hConsole = GetStdHandle((STD_OUTPUT_HANDLE))在C语言中是什么意思

作者&投稿:彩虾 (若有异议请与网页底部的电邮联系)
C++中,这句话是什么意思:HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); 麻烦解释一下~~~谢谢~

句柄就是系统服务你的凭证。 你去过银行吧,门口有个排队机, 你从排队机上撕下一张票来,这个就是银行为你服务的凭证,没有这个凭证,银行不理你。

获取标准输出的句柄。 命令行的程序 会把字符输出到屏幕上, 用的就是这个句柄。 够通俗吧

获取标准输出的句柄

HANDLE hConsole = GetStdHandle((STD_OUTPUT_HANDLE))在C语言中表示:从一个特定的标准设备(标准输出)中取得一个句柄(用来标识不同设备的数值)。

其中,STD_OUTPUT_HANDLE表示标准输出的句柄。GetStdHandle是Windows API函数,hConsole只是一个句柄变量。HANDLE是Windows用来表示对象的(不是C++的对象),HWND是其中一种,HWND是HANDLE,但HANDLE不只是HWND,HANDLE是一个通用句柄表示。

GetStdHandle((STD_OUTPUT_HANDLE))等效于GetStdHandle(STD_OUTPUT_HANDLE),没必要添加双括号,添加了也没有错。

扩展资料:

GetStdHandle函数的用法:

语法:HANDLE GetStdHandle( DWORD nStdHandle );

GetStdHandle()返回标准的输入、输出或错误的设备的句柄,也就是获得输入、输出/错误的屏幕缓冲区的句柄。

参数:

值为几种类型的一种:STD_INPUT_HANDLE 标准输入的句柄、STD_OUTPUT_HANDLE 标准输出的句柄、STD_ERROR_HANDLE 标准错误的句柄。

参考资料来源:百度百科-GetStdHandle

参考资料来源:百度百科-handle



上句执行后,定义了一个句柄变量hConsole,将其赋值为GetStdHandle((STD_OUTPUT_HANDLE)),即标准输出的句柄。

例如:

#include <stdio.h>

#include <windows.h>

int main(void)

{

HANDLE consolehwnd; //创建句柄,详细句柄知识,请百度一下或查MSDN

consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE); //实例化句柄

SetConsoleTextAttribute(consolehwnd, FOREGROUND_RED);//设置字体颜色

printf("hello ");

SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY | FOREGROUND_GREEN);
printf("world!
");

getchar();

SetConsoleTextAttribute(consolehwnd,BACKGROUND_INTENSITY |BACKGROUND_BLUE);
printf("It is really beautiful!
");

return 0;

}

扩展资料:

注意事项

SetConsoleTextAttribute()函数是一个API设置字体颜色和背景色的函数。参数表中使用两个属性(属性之间用,隔开)。GetStdHandle()和FOREGROUND_*或BACKGROUND_*。*值为INTENSITY或RED或GREEN或BLUE。第一个属性获得句柄(即要设置颜色的地方),第二个属性设置颜色。属性相加是在属性值中间加“|”隔开即可。

GetStdHandle(STD_OUTPUT_HANDLE)获得句柄。

FOREGROUND_INTENSITY表示设置前景色为高亮显示。

FOREGROUND_RED表示设置前景色为红色,即字体颜色为红色。

FOREGROUND_GREEN表示设置前景色为绿色,即字体颜色为绿色。

FOREGROUND_BLUE表示设置前景色为蓝色,即字体颜色为蓝色。

BACKGROUND_INTENSITY表示设置背景色为高亮显示。

BACKGROUND_RED 表示设置背景色为红色。

BACKGROUND_GREEN表示设置背景色为绿色。

BACKGROUND_BLUE表示设置背景色为蓝色。

说明:在使用时要在预处理中包含window.h头文件。



HANDLE hConsole = GetStdHandle((STD_OUTPUT_HANDLE));
简单来说,上句执行后,定义了一个句柄变量hConsole,将其赋值为GetStdHandle((STD_OUTPUT_HANDLE)),即标准输出的句柄,示例代码,
//程序功能输出绿色的“hello world!”
#include <stdio.h>
#include <windows.h>
int main(void)
{
HANDLE hwnd = GetStdHandle(STD_OUTPUT_HANDLE); //实例化句柄hwnd
SetConsoleTextAttribute(hwnd, FOREGROUND_GREEN);//设置字体颜色为绿色 ,SetConsoleTextAttribute是API设置控制台窗口字体颜色和背景色的函数
printf("hello world!\n");
return 0;
}

HANDLE GetStdHandle( DWORD nStdHandle );是一个Windows API函数。它用于从一个特定的标准设备(标准输入、标准输出或标准错误)中取得一个句柄(用来标识不同设备的数值)。nStdHandle为下列值之一,

STD_INPUT_HANDLE,标准输入的句柄;

STD_OUTPUT_HANDLE,标准输出的句柄;
STD_ERROR_HANDLE,标准错误的句柄。

hConsole这不是你自己写的变量名吗?
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE) ; 这样就行了,他多了一对括号而已。

先看一个简单的程序例:
#include <stdio.h>
#include <windows.h>
int main(void)
{
HANDLE consolehwnd; //创建句柄,详细句柄知识,请百度一下或查MSDN
consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE); //实例化句柄
SetConsoleTextAttribute(consolehwnd, FOREGROUND_RED);//设置字体颜色
printf("hello ");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY | FOREGROUND_GREEN);
printf("world!\n");
getchar();
SetConsoleTextAttribute(consolehwnd,BACKGROUND_INTENSITY |BACKGROUND_BLUE);
printf("It is really beautiful!\n");
return 0;
}
参数说明:
FOREGROUND_RED表示设置前景色为红色,即字体的颜色为红色;
FOREGROUND_INTENSITY 表示设置前景色为高亮显示,FOREGROUND_GREEN表示绿色,两个参数中间加“|”表示前景色为高亮绿色;
BACKGROUND_INTENSITY表示设置背景色为高亮显示,BACKGROUND_BLUE表示背景色为蓝色,BACKGROUND_INTENSITY |BACKGROUND_BLUE两个参数就使背景色为高亮蓝色。

STD_OUTPUT_HANDLE不用加括号,hConsole的翻译是控制台句柄,这里用它操纵控制台,比如SetConsoleTextAttribute可以修改hConsole对应的控制台上面的文字属性


江山市17617312458: C语言定义结构体变量中有 Handle h - sour;这里面的Handle是什么意思啊,哪位好心人能给解答一下啊! -
却育安福: Handle 也是一个结构体名,和“C语言定义结构体变量中有 Handle h_sour”中的“结构体”一样. 比如: struct ABC{ Handle h_sour; int a; int b; }abc; 这里的Handle和ABC一样的意思,而h_sour和abc一个意思

江山市17617312458: C++中,这句话是什么意思:HANDLE hOut = GetStdHandle(STD - OUTPUT - HANDLE); 麻烦解释一下~~~谢谢 -
却育安福: 句柄就是系统服务你的凭证. 你去过银行吧,门口有个排队机, 你从排队机上撕下一张票来,这个就是银行为你服务的凭证,没有这个凭证,银行不理你.获取标准输出的句柄. 命令行的程序 会把字符输出到屏幕上, 用的就是这个句柄. 够通俗吧

江山市17617312458: 什么是句柄 -
却育安福: 句柄,是整个windows编程的基础.一个句柄是指使用的一个唯一的整数值,即一个四字节长的数值,来标识应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等.应用程序能...

江山市17617312458: 请高手解释一下handle(句柄)的含义.
却育安福: 所谓句柄实际上是一个数据,是一个Long (整长型)的数据. 句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标...

江山市17617312458: ,HANDLE翻译成中文是什么意思 -
却育安福: handle [英][ˈhændl][美][ˈhændl] n.(织物、毛皮等的)手感; 手柄; 举动; 柄状物; vi.操作,操控; 容易搬运; vt.用双手触摸、举起或握住; 用手操作,操纵; 处理或负责,管理; 〈美〉买卖,经营; 你为何不百度一下···

江山市17617312458: 明矾可用于净水,是因为明矾溶于水生成的胶状物可以( )悬浮于水中的杂质,使之从水中()出来 -
却育安福: 明矾可用于净水,是因为明矾溶于水生成的胶状物可以(吸附 )悬浮于水中的杂质,使之从水中(沉淀分离)出来.河水中一般含有少量HCO3-,它和明矾溶解生成的Al3+发生下列反应: Al3++3HCO3-Al(OH)3

江山市17617312458: 解释一下Handle,学这么久了,都没弄明白它啥意思! -
却育安福: 可以看成是安全指针.像指针一样,可以通过它操作某个对象;但是handle提供了比pointer更加安全的保护;pointer意味着内存地址,意味着可以直接操作对象内部的任何信息handle的实现很简单,你可以简单想象成是在进程内部的一个数组数组的每个元素是一个pointer,指向了一个os内部对象handle就可以是指针在数组中的下标其实这只是handle的一种实现而已在windows中,很多位于用户空间的对象的handle其实就是指针只不过windows告诉你它是一个32位的uint,这样的就将对象内部的细节屏蔽掉了.

江山市17617312458: handle 句柄到底是什么作用啊 一下代码什么意思?我初学哦
却育安福: 句柄是一个窗口(控件)、进程运行时的唯一标识.通过这个句柄可以操作这个控件,比如发消息修改样式、调整尺寸、设置状态、文字、启用或禁用等.

江山市17617312458: 这个算不算是生成接口的对象吗,接口不是不能生产对象吗,有些不理解,谁帮忙解释一下,如下举例: -
却育安福: 接口当然不可以产生对象, private CmdProcess handle是指handle 指向CmdProcess的实现类,这地方理解起来可能蹩脚,你说handle是可以直接调用接口中的函数的,非常正确,但是调用的其实是其实现类中的方法.SO 这下你应该理解了.不懂再追问哈

江山市17617312458: 谁能帮我讲解一下化学中碳酸氢盐的性质? -
却育安福: 只要是可溶的碳酸氢盐,都具备这种性质 不少酸式盐都有这个性质,比如亚硫酸氢根 HSO3(-)+H(+)=HSO3↑ HSO3(-)+OH(-)=SO3(2-)+H2O 这两个都是可逆的 但是硫酸氢盐就不一样了,因为硫酸氢根是以H(+)+SO4(2-)的形式存在,可以看作硫酸和硫酸盐的混合物,而碳酸氢根或者亚硫酸氢根主要(注意,是主要)以HCO3(-)和HSO3(-)的形式存在,可以电离也可以水解,所以可以与酸碱都反应.你可以列公式看看

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网