Winapi 如何在装配中清除控制台?

Winapi 如何在装配中清除控制台?,winapi,assembly,masm,Winapi,Assembly,Masm,我正在寻找一个清除控制台的win32 api函数,很像cls命令 谢谢 Devjeet没有直接清除控制台的Win32 API-您需要使用类似的工具。这已经很旧了,但仍然可以工作。向汇编语言的转换留给读者作为练习,但应该不会非常困难(大部分只是函数调用,乘法很简单): #包括 无效清除屏幕(字符填充=“”){ 坐标tl={0,0}; 控制台屏幕缓冲区信息; 手柄控制台=GetStdHandle(标准输出手柄); GetConsoleScreenBufferInfo(控制台,&s); 写入的DWOR

我正在寻找一个清除控制台的win32 api函数,很像
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);
}