Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/41: Рейтинг темы: голосов - 41, средняя оценка - 4.78
2 / 2 / 0
Регистрация: 12.02.2011
Сообщений: 55

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

12.02.2011, 11:41. Показов 8543. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите как организовать прямой доступ к видео памяти на современно VGA/DVI видео адаптере.
В Книги Шилдта есть указания как сделать это,но на старых видео адаптерах. Там указанно что надо создать указатель на область памяти 0xB0000000 - если монохромный видео адаптер, или на область - 0xB8000000 - если это EGA или CGA адаптер.
Но книга 1989 года издания, как реализовать это в современных условиях.
P.S: я пишу консольное приложения, до для разработки и управление интерфейсом мне необходим доступ в видеопамяти.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.02.2011, 11:41
Ответы с готовыми решениями:

Прямой доступ к памяти
Как прочитать произвольный адрес оперативной памяти? Заранее спасибо!

Прямой доступ к памяти
Подскажите как сделать чтобы функция ChangeId меняла член структуры, я рассматриваю что после padding в структуре следующая структура...

Есть ли средства для питон, позволяющие получить прямой доступ к памяти?
Есть ли средства для питон, которые бы позволили напрямую обращаться к памяти?

12
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
12.02.2011, 13:32
Делал такие вещи на АСМе, по книге где-то того же времени (даже наверное раньше)), все получилось)

Цитата Сообщение от Liricnet Посмотреть сообщение
В Книги Шилдта есть указания как сделать это,но на старых видео адаптерах. Там указанно что надо создать указатель на область памяти 0xB0000000 - если монохромный видео адаптер, или на область - 0xB8000000 - если это EGA или CGA адаптер.
А что за книга? Давно хотел узнать, как в языках С/С++ можно указателю принудительно константное значение присвоить, сам пробовал - не компилировалось(
0
2 / 2 / 0
Регистрация: 12.02.2011
Сообщений: 55
12.02.2011, 13:41  [ТС]
Г. Шилдт "С для профессиональных программистов"
Просто у меня курсовая по ЯВУ, а конкретно С/С++
я поэтому хотел бы узнать как это на языке Си реализовать...
0
22 / 22 / 2
Регистрация: 06.12.2010
Сообщений: 125
12.02.2011, 13:47
в 89-м году был DOS. современные системы не дают доступа напрямую к памяти других приложений (см. изоляция процессов) и к портам ввода-вывода (уровень ядра системы). так что реализовать можно только через обращения к драйверу, в зависимости от системы.
да и вообще, если не секрет, зачем доступ напрямую, если есть множество библиотек для работы с графикой?
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
12.02.2011, 13:51
Iron Bug, возможно сделать именно через адреса. Просто современные ОС естетвенно тебя не пустят туда, куда не просят, но они поймут, что тебе нужно и будет с эмулированно обращение к адресу. Хотя в действительности конечно же итог работы программы будет достигнут другим путем, но это уже программисту знать не обязательно (я вот, если честно не знаю, только догадываюсь))
0
22 / 22 / 2
Регистрация: 06.12.2010
Сообщений: 125
12.02.2011, 15:06
насколько мне известно, начиная с Win2K все эти лазейки прикрыты. и надёжно. и к портам уже давно никто не лазит.
пишите драйвер - тогда пожалуйста. с уровня ядра можно и напрямую.
0
2 / 2 / 0
Регистрация: 12.02.2011
Сообщений: 55
13.02.2011, 18:50  [ТС]
А еще варианты как можно изменить выведенное на экране изображение/текст/псевдографику не используя функцию очистки экрана? Какие winAPI функции предусмотрены? и какие библиотеки требуются?
Подскажите плиз, а то каждый раз при изменение использовать windows("cls") или clrscr(); как то слишком грубо и неприятно для глаз...
0
22 / 22 / 2
Регистрация: 06.12.2010
Сообщений: 125
13.02.2011, 22:42
ну, вариантов-то много. про API навскидку не скажу. нет у меня дома венды, чтобы посмотреть. а так, есть DirectDraw и если требуется работа с изображением на экране, то лучше копать в эту сторону. но это, опять же, смотря какая задача. а то из пушки по воробьям не очень эффективно.
0
Day
 Аватар для Day
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
14.02.2011, 11:46
В 1990 (ДОС еще) написал
C
1
 char far *vidmem = (char far *) 0xB000000;;
и делал там, что хотел.
С тех пор прошло много виндов, программы прекрасно работают как в полноэкранном режиме, так и в окне. Видимо, эмулируется досовская видеопамять, и эмулируется правильно.

Добавлено через 2 минуты
Цитата Сообщение от Liricnet Посмотреть сообщение
А еще варианты как можно изменить выведенное на экране изображение/текст/псевдографику не используя функцию очистки экрана? Какие winAPI функции предусмотрены? и какие библиотеки требуются?
Подскажите плиз, а то каждый раз при изменение использовать windows("cls") или clrscr(); как то слишком грубо и неприятно для глаз...
Пиши спокойно по указанному адресу. Только не забудь, что на символ там 2 байта - символ и цветовой атрибут.
А вот кто бы мне сказал как цвет курсора изменить?

Добавлено через 7 минут
ЗЫ. Если интересно, могу скинуть досовский редактор с исходниками. А то как-то жалко, такая вещь пропадает!
2
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
14.02.2011, 14:15
Цитата Сообщение от Day Посмотреть сообщение
Видимо, эмулируется досовская видеопамять, и эмулируется правильно.
Так и есть) Когда начинал на АСМе под ДОС писать, читал лит-ру на эту тему, все эмулируется, даже прерывания.
0
2 / 2 / 0
Регистрация: 12.02.2011
Сообщений: 55
14.02.2011, 20:37  [ТС]
а какой компилятор лучше использовать? просто мне MS Visual Studio говорит что-то типа неверный адресс =(((
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
14.02.2011, 21:00
Цитата Сообщение от Liricnet Посмотреть сообщение
а какой компилятор лучше использовать? просто мне MS Visual Studio говорит что-то типа неверный адресс =(((
все что было сказано выше компилируется под дос, но работает и под виндой. В MS Visual Studio нельзя скомпилировать программу под дос, придется поискать старый досовский компилятор, что то типа turbo C. Только вот зачем это в винде, где есть тот же DirectX например?
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
14.02.2011, 21:34
Цитата Сообщение от Liricnet Посмотреть сообщение
а какой компилятор лучше использовать? просто мне MS Visual Studio говорит что-то типа неверный адресс =(((
Из архаики могу посоветовать Borland C 2.0 или 3.1.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.02.2011, 21:34
Помогаю со студенческими работами здесь

Прямой доступ к битмапу
К сожалению, в моей предыдущей теме какие-то конкретные советы по моей проблеме дать никто не смог, поэтому пришлось брать инициативу в...

Прямой IP-доступ запрещен
Здравствуйте, при подключении к сайту возвращается ответ, в котором сказано: "Direct IP access not allowed", как это исправить? ...

Прямой доступ к переменным
Доброго времени суток, форумчане. Сразу оговорю, что название темы может не совсем корректно раскрывать суть вопроса. Начну с аналога...

Прямой доступ к видеопамяти
Здраствуйте уважаемы программеры! У меня к вам огромная просьба не могу написать казалось бы простую программу на ассемблере. Вобщем как не...

Прямой доступ к файлу
Есть заполненный бинарный файл с действительными числами. Нужно изменить этот же файл, изменив последовательность этих чисел вот так: A1,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru