C语言 CONSOLE_SCREEN_BUFFER_INFO 这个语句有什么用?

Python023

C语言 CONSOLE_SCREEN_BUFFER_INFO 这个语句有什么用?,第1张

COORD和CONSOLE_SCREEN_BUFFER_ INFO是wincon.h定义的控制台结构体类型,其原型如下:

// 控制台窗口信息结构体

typedef struct _CONSOLE_SCREEN_BUFFER_INFO {

COORD dwSize // 缓冲区大小

COORD dwCursorPosition // 当前光标位置

WORD wAttributes // 字符属性

SMALL_RECT srWindow // 当前窗口显示的大小和位置

COORD dwMaximumWindowSize // 最大的窗口缓冲区大小

} CONSOLE_SCREEN_BUFFER_INFO 

举个简单的例子:

#include <windows.h>

#include <stdio.h>

#include <conio.h>

int main(void)

{

       HANDLE hOut

       CONSOLE_SCREEN_BUFFER_INFO bInfo // 存储窗口信息

       COORD pos = {0, 0}

       // 获取标准输出设备句柄

       hOut = GetStdHandle(STD_OUTPUT_HANDLE)

       // 获取窗口信息

       GetConsoleScreenBufferInfo(hOut, &bInfo )

       printf("\n\nThe soul selects her own society\n")

       printf("Then shuts the door\n")

       printf("On her devine majority\n")

       printf("Obtrude no more\n\n")

       _getch()

       // 向窗口中填充字符以获得清屏的效果

       FillConsoleOutputCharacter(hOut,' ', bInfo.dwSize.X * bInfo.dwSize.Y, pos, NULL)

       // 关闭标准输出设备句柄

       CloseHandle(hOut)

       return 0

}

不想调用控制台入口换winmain

底层的编译,在编译成目标文件之后,不要链接成可执行文件,生成别的

二进制文件

或者。。像

Linux内核

一样,编译成可执行文件,装载入内存,然后用内存镜像拷贝出纯二进制文件。。等等方法

至于编译驱动有另外更加专业的方法咯。。