Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> молниеносный вывод символа на консоль, с какого адреса начинается консоль? 
:(
    Опции темы
SergeyMitrofanov
  Дата 29.3.2015, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 30.1.2006

Репутация: нет
Всего: нет



Есть код, работал под BC ++ 3.1,
получить из него работающую программу под MinGW GCC
не удалось.
Помогите, пожалуйста, разобраться.
Код

# include <stdio.h>
          # include <conio.h>
          # include <iostream>
          # include <windows.h>

          void print_xy (
                          int x, // абсцисса
                          int y, // ордината
                          char s, // cимвол
                          int color, // цвет символа
                          int fon // фон символа
                        )
          {
            // Этот код компилируется под Borland C++ 3.1 и
            // и программа работает под Windows 7 32 bit
            
            // Но этот код хотя и компилируется под TDM-GCC Dev-C++
            // но, увы, не работает под Windows 7 32 bit -
            // зависает с ошибкой :-(
            
            // Код нужен, для того, чтобы постоянно выводить
            // текущее время в опредленные позиции консоли во
            // во время работы текстового редактора

            /*
              // MSP, 15.01.99, 10:54
              молниеносный вывод символа на экран, через видеопамять.
              модель памяти Large

              Иногда бывает удобно или необходимо изменить модель памяти
              для отдельных функций или данных. Это изменение можно
              произвести с помощью модификаторов near, far и huge.

              char far *
                data;

              Указатель data теперь является дальним указателем независимо
              от того, какая модель памяти указана компилятору при обработке
              программы.
              Я указал Compact. А для data будет работать Large.
            */

            /*
              MSP, 23.03.15, 21:46
              По каким адресам располагается окно консоли?
              Это правильный код?
            */

            char far * v_mem = (char far *) 0xb8000000L;

            v_mem += (x - 1) * 2 + (y - 1) * 160;
            * v_mem ++ = s;
            * v_mem = color + (fon * 16);

          } // end void print_xy (int, int, char, int, int)
          
          using namespace std;

                    int main ()
          {
            system ("cls");
            
            // молниеносный вывод белого символа на синем фоне символа (!)
            // в позицию (10, 8) экрана консоли,
            // при молниеносном выводе
            // курсор отключен, его не видно, он не мигает
            print_xy (10, 8, '!', 15, 1);
            
            getch ();
            
            return 0;
          }



PM MAIL WWW   Вверх
xvr
Дата 30.3.2015, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Windows программа не имеет прямого доступа (через память) в консоль. То, что у вас в BC3.1 - это DOS программа, для нее консоль (в памяти) эмулируется самой Windows.
Доступ в консоль (под Windows) возможен только для консольных приложений (см https://msdn.microsoft.com/en-us/library/wi...v=vs.85%29.aspx ) и только для своего собственного приложения. (В окно консоли чужого приложения в принципе можно залезть, но это уже из области черной магии  smile )


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0431 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.