Форум программистов, компьютерный форум, киберфорум
Наши страницы

Прямой доступ к видеопамяти - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ delete[] http://www.cyberforum.ru/cpp-beginners/thread925222.html
подскажите пожалуйста как заставить это работать? Вылетает на строчке delete. Выделяю ведь память с помощью оператора new. А в идеале нужно сделать так чтобы была отдельная ф-я типа: void...
C++ Учусь c ++ В общем читал статью в учебнике "Умные опеpатоpы". Дальше идет такая пpогpаммка. #include <iostream> #include<string> Using namespace std; int main() { http://www.cyberforum.ru/cpp-beginners/thread925220.html
C++ Ввод данных с клавиатуры
1.«Тестирование коллектива». Пусть целочисленная матрица размером п х т содержит информацию об учениках некоторого класса из п человек. В первом столбце проставлена масса (кг), во втором — рост (см),...
C++ Захват и управление видеопотоком
Здравствуйте. У меня определенная проблема, но нет знаний чтобы понять ее суть. Но есть стремление. Объясните пожалуйста, каким образом можно изменить то, что отображается на мониторе в режиме...
C++ Связанные списки (переделать программу) http://www.cyberforum.ru/cpp-beginners/thread925189.html
Как переделать программу, чтобы можно было вводить самому ключи и не было Access Violation? #include <iostream> #include <time.h> #include <string.h> using namespace std; char buff; ...
C++ Почему break нельзя использовать в if? почему break нельзя использовать в if вот код if(f.eof()==1) { break; } про break MVS говорит что ОПЕРАТОР break можно исолпьзовтаь только внутри цикла подробнее

Показать сообщение отдельно
bgm123
40 / 40 / 16
Регистрация: 29.01.2013
Сообщений: 277

Прямой доступ к видеопамяти - C++

18.07.2013, 17:10. Просмотров 1752. Ответов 11
Метки (Все метки)

Требуется написать программу, которая будет напрямую обращаться в видеопамяти. Описание:

Реализовать функцию, принимающую три параметра - цвет фона, цвет тона и код символа и производящую заполнение этим символом всего экрана. Реализовать функцию очистки экрана с использованием созданной функции.

Для заполнения видеопамяти воспользуйтесь указателем на беззнаковый символ.
Для присвоения ему значения 0хВ8000000 необходимо осуществить явное преобразование типов. Непосредственное значение 0хВ8000000 имеет тип int. Следует сначала привести тип этого значения к void* а затем - к unsigned char* для того, чтобы присовение стало возможным.
Для обращения к различным байтам видеопамяти воспользуйтесь этим указателем.
Видеопамять организована следующим образом: байт по адресу 0хВ8000000 содержит код символа в левом верхнем углу экрана. Следующий за ним байт содержит цвет фона и цвет тона этого символа. В старшей половине этого байта содержится цвет фона, в младшей - цвет тона.

Коды некоторых цветов: 0х0 - черный, 0х7 - серый, 0хf - белый

При выполенини работы производите периодическое сохранение программы, так как некорректная работа с памятью может привести к ошибке ЭВМ и потере данных в оперативной памяти.

КОД, КОТОРЫЙ НЕ РАБОТАЕТ:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main(void)
{
    
    char *p =  (char *)((void *)0xB8000000);
        
    for(int i = 1; i <= 20; i++){
        *p = '8';
        p++;
        *p = 0;
        p++;
    }
    
 
    return 0;
}
Добавлено через 1 минуту
Доступно ли прямое обращение к памяти в Windows 7 в режиме user mode?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.