Форум программистов, компьютерный форум CyberForum.ru

Функция инициализации консольной графики от Лафоре - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ При добавлении студента, сбивается вся структура, и при выводе всего списка студентов, выводит какой то мусор http://www.cyberforum.ru/cpp-beginners/thread1234648.html
Суть действий: При добавлении студента, сбивается вся структура, и при выводе всего списка студентов, выводит какой то мусор. Раньше я прописал все тоже самое только без функции AddStudent и все нормально работало( case 50: // добавление студента { AddStudent(stud, &nSize); // добавляем студента
C++ Простой парсер - как перебрать варианты строки Всем привет!Опыт программирования на си++ всего месяц-c# около 4 а делфи один год.Решил их кинуть(c# и делфи) и писать все на си++.Если что я 12 летний школьник поэтому обьясните попонятней.VCL знаю неплохо-про инклуды и не говорите-давайте сразу код.Ну хватит тут анкету писать, вот сам и впопрос.Я пишу простенький парсер,не знаю как перебрать варианты строки.Вот код: #include <vcl.h> #include... http://www.cyberforum.ru/cpp-beginners/thread1234636.html
Не выполняется код в цикле в приведенном коде C++
Не могу понять, почему не выполняется код в цикле в этом коде: // sp_Ch5P255_Exercise05 /// Занятия по книге Стивена Праты "Язык программирования С++" (2012, 6-е издание). /// Упражнения по программированию. Глава 5, страница 255, упражнение 5. /* Предположим, что вы продаете книгу по программированию на языке C++ для начинающих. Напишите программу, которая позволит ввести ежемесячные...
C++ Передача параметра по константной ссылке - что это?
объясните мне пожалуйста что такое передача параметра в функцию по константной ссылке? я просто вообще не могу представить что значит & в параметре функции... 2 года как изучаю си, а такое увидел только недавно... & это же операция взятия адреса, я ее знаю только так... но как она может быть параметром убей не пойму...
C++ Задание директории gcc http://www.cyberforum.ru/cpp-beginners/thread1234600.html
Здравствуйте. Первый раз работаю с gcc. Не получается задать директорию для работы. То есть собирается только то, что лежит в C:\MinGW\bin, а это неудобно. Предполагаю, что надо найти какую-то системную переменную PATH и прописать туда директорию, в которой я хочу хранить проект. Но я не представляю, как она выглядит, где ее найти и, что конкретно в нее писать. И в какую директорию тогда надо...
C++ Послать дополнительный клик мышкой Вот есть рабочий код void __fastcall TfMain::reTextContextPopup(TObject *Sender, TPoint &MousePos, bool &Handled) { tagINPUT *i = new tagINPUT; //вариант 1 i->type = 0; i->mi.dx = 0; i->mi.dy = 0; i->mi.mouseData = 0; подробнее

Показать сообщение отдельно
porshe
 Аватар для porshe
52 / 46 / 17
Регистрация: 18.07.2014
Сообщений: 194
26.07.2014, 19:57     Функция инициализации консольной графики от Лафоре
Доброго времени суток.
Пытаюсь использовать( только обучения ради ) и изменить библиотеку консольной графики от Лафоре.
Среди прочих функций есть функция инициализации графики, вот её код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void init_graphics()
   {
   COORD console_size = {80, 25};
   //open i/o channel to console screen
   hConsole = CreateFile("CONOUT$", GENERIC_WRITE | GENERIC_READ,
                   FILE_SHARE_READ | FILE_SHARE_WRITE,
                   0L, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0L);
   //set to 80x25 screen size
   SetConsoleScreenBufferSize(hConsole, console_size);
   //set text to white on black
   SetConsoleTextAttribute( hConsole, (WORD)((0 << 4) | 15) );
 
   fill_char = '\xDB';  //default fill is solid block
   clear_screen();
   }
Здесь hConsole имеет тип HANDLE. Данный дескриптор используется в остальных функциях. Но я не совсем понимаю как. Вот пример:
C++
1
2
3
4
5
void set_color(color foreground, color background)
   {
   SetConsoleTextAttribute( hConsole, 
                        (WORD)((background << 4) | foreground) );
   }
Вот прототип функции:
C++
1
2
3
4
5
6
BOOL SetConsoleTextAttribute(
 
    HANDLE hConsoleOutput, // дескриптор экранного буфера
    WORD wAttributes       // цвет текста и фона
 
);
Нетрудно заметить, что функция( которая SetConsoleTextAttribute ) получает дескриптор экранного буфера, но ни как не дескриптор файла ( да ещё и с таким странным названием - CONOUT$( или может дело в названии? ) ).

Я запутался . Как создание файла, который никак не связан с консолью, может влиять на вышеназванную?

И можно ли заменить CreateFile на GetStdHandle( STD_OUTPUT_HANDLE )?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru