简述
GetStdHandle是一个Windows API函数。它用于从一个特定的标准设备(标准输入、标准输出或标准错误)中取得一个句柄(用来标识不同设备的数值)。因为很多API函数都需要用到句柄,所以GetStdHandle是一个很重要的函数。
函数原型
包含在头文件windows.h中
HANDLE WINAPI GetStdHandle( _In_ DWORD nStdHandle);
参数
GetStdHandle函数的参数可以是下列之一
参数 | 含义 |
---|---|
STD_INPUT_HANDLE | 标准输入句柄 |
STD_OUTPUT_HANDLE | 标准输出句柄 |
STD_ERROR_HANDLE | 标准错误句柄 |
注:只有这三种参数哦。不同的参数用于获取不同标准设备的句柄。
返回值
都知道GetStdHandle函数是用来获取句柄的啦,那它的返回值当然是个句柄喽。这一点从函数原型也能看出来。
举个栗子
#include <windows.h>
#include <stdio.h>
#include <string.h>
int main(int argc,char * argv[])
{
HANDLE fd = GetStdHandle(STD_OUTPUT_HANDLE);//这里,获取标准输出设备的句柄,并将其赋给句柄变量fd
CONSOLE_CURSOR_INFO cinfo;
char str[4];
while(1)
{
cinfo.dwSize = 1;
printf("请输入on/off开启/关闭光标显示:\n");
scanf("%s",str);
if(!strcmp(str,"off"))
{
cinfo.bVisible = 0;
SetConsoleCursorInfo(fd,&cinfo);
}
else if(!strcmp(str,"on"))
{
cinfo.bVisible = 1;
SetConsoleCursorInfo(fd,&cinfo);
}
else
printf("指令错误,请重新输入,输入on或者off打开或者关闭光标显示\n");
}
return 0;
}