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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ delete[] http://www.cyberforum.ru/cpp-beginners/thread925222.html
подскажите пожалуйста как заставить это работать? Вылетает на строчке delete. Выделяю ведь память с помощью оператора new. А в идеале нужно сделать так чтобы была отдельная ф-я типа: void deleteStr() { delete string; }
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.«Тестирование коллектива». Пусть целочисленная матрица размером п х т содержит информацию об учениках некоторого класса из п человек. В первом столбце проставлена масса (кг), во втором — рост (см), в третьем — успеваемость (средний балл) и т.д. (используйте свои дополнительные показатели). Ученик называется среднестатистическим по k-му параметру (уникальным по k-му параметру), если на нем...
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; struct str { str *pred;
C++ Почему break нельзя использовать в if? почему break нельзя использовать в if вот код if(f.eof()==1) { break; } про break MVS говорит что ОПЕРАТОР break можно исолпьзовтаь только внутри цикла подробнее

Показать сообщение отдельно
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
18.07.2013, 17:10     Прямой доступ к видеопамяти
Требуется написать программу, которая будет напрямую обращаться в видеопамяти. Описание:

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

Для заполнения видеопамяти воспользуйтесь указателем на беззнаковый символ.
Для присвоения ему значения 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?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru