Winapi 如何在装配中清除控制台?
我正在寻找一个清除控制台的win32 api函数,很像Winapi 如何在装配中清除控制台?,winapi,assembly,masm,Winapi,Assembly,Masm,我正在寻找一个清除控制台的win32 api函数,很像cls命令 谢谢 Devjeet没有直接清除控制台的Win32 API-您需要使用类似的工具。这已经很旧了,但仍然可以工作。向汇编语言的转换留给读者作为练习,但应该不会非常困难(大部分只是函数调用,乘法很简单): #包括 无效清除屏幕(字符填充=“”){ 坐标tl={0,0}; 控制台屏幕缓冲区信息; 手柄控制台=GetStdHandle(标准输出手柄); GetConsoleScreenBufferInfo(控制台,&s); 写入的DWOR
cls
命令
谢谢
Devjeet没有直接清除控制台的Win32 API-您需要使用类似的工具。这已经很旧了,但仍然可以工作。向汇编语言的转换留给读者作为练习,但应该不会非常困难(大部分只是函数调用,乘法很简单):
#包括
无效清除屏幕(字符填充=“”){
坐标tl={0,0};
控制台屏幕缓冲区信息;
手柄控制台=GetStdHandle(标准输出手柄);
GetConsoleScreenBufferInfo(控制台,&s);
写入的DWORD,单元格=s.dwSize.X*s.dwSize.Y;
FillConsoleOutputCharacter(控制台、填充、单元格、tl和写入);
填写控制台输出属性(控制台、s.W属性、单元格、tl和写入);
设置控制台或位置(控制台,tl);
}
:O程序集得到了空值:D。不过,转换确实很简单。最后两条语句,attrib没有定义,console也没有定义。我猜控制台是屏幕?但什么是attrib?谢谢。@UkownUser:看起来我最初编写这段代码时,代码中还剩下了一些小部分。我已经编辑了独立工作的代码。谢谢你的提醒。
#include <windows.h>
void clear_screen(char fill = ' ') {
COORD tl = {0,0};
CONSOLE_SCREEN_BUFFER_INFO s;
HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(console, &s);
DWORD written, cells = s.dwSize.X * s.dwSize.Y;
FillConsoleOutputCharacter(console, fill, cells, tl, &written);
FillConsoleOutputAttribute(console, s.wAttributes, cells, tl, &written);
SetConsoleCursorPosition(console, tl);
}