Console Functions Win API. Помогите разобраться с выводом

Тема в разделе "LANGS.C", создана пользователем Antolflash, 22 ноя 2009.

  1. Antolflash

    Antolflash New Member

    Публикаций:
    0
    Регистрация:
    14 дек 2008
    Сообщения:
    167
    Пишу пакмана в консоли. Написал тестовую прогу чтобы выводить символы в консоль.
    Создаю консоль, задаю атрибуты (чтоб разноцветные символы были), пишу символ. Функции возвращают true,
    а символы не появляются.
    Я что-то упускаю, помогите пожалуйста.
    Вот код:
    Код (Text):
    1. #include <windows.h>
    2.  
    3. int main()
    4. {
    5. COORD dwCursorPosition;
    6. HANDLE hConsoleOutput;
    7. WORD wAttribute;
    8. WCHAR cCharacter = 1;
    9. int i;
    10. BOOL test;
    11. LPDWORD lpNumberOfCharsWritten = new DWORD;
    12. LPDWORD lpNumberOfAttrsWritten = new DWORD;
    13.  
    14. hConsoleOutput = CreateConsoleScreenBuffer(GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CONSOLE_TEXTMODE_BUFFER, NULL);
    15. dwCursorPosition.X = 5;
    16. dwCursorPosition.Y = 5;
    17. wAttribute = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_BLUE;
    18. SetConsoleCursorPosition(hConsoleOutput, dwCursorPosition);
    19.  
    20. for(i=0; i<100; i++) {
    21. test = FillConsoleOutputAttribute(hConsoleOutput, wAttribute, 1, dwCursorPosition, lpNumberOfAttrsWritten);
    22. test = FillConsoleOutputCharacter(hConsoleOutput, cCharacter, 1, dwCursorPosition, lpNumberOfCharsWritten);
    23. cCharacter++;
    24. dwCursorPosition.X++;
    25. dwCursorPosition.Y++;
    26. }
    27.  
    28. delete lpNumberOfAttrsWritten;
    29. delete lpNumberOfCharsWritten;
    30. }
     
  2. Antolflash

    Antolflash New Member

    Публикаций:
    0
    Регистрация:
    14 дек 2008
    Сообщения:
    167
    hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
    нужно брать существующий буфер

    Закрывайте тему)))