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

dev*_*roy 3 assembly winapi masm

我正在寻找一个清除控制台的win32 api函数,就像cls命令谢谢!Devjeet

Jer*_*fin 12

这是相当古老的,但应该仍然有效.转换为汇编语言留给读者作为练习,但不应该非常困难(大多数只是函数调用,乘法是微不足道的):

#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);
}
Run Code Online (Sandbox Code Playgroud)


小智 5

没有直接清除控制台的 Win32 API - 您需要使用类似FillConsoleOutputCharacter的东西。