Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Доступ к ОЗУ на С++


Автор: kurlyak 3.3.2011, 15:28
Я тут вобщим решил "побаловаться" так сказать. Поставил ДОС, Борлан Си, и пишу простенькие графические программы для режима 320х200х256 цветов. Так вот мне надо на С++ получить доступ к ОЗУ моего компьютера по адресу видеобуфера A000:0000. Как это сделать? То есть я засылаю цвета в этот учаток памяти, мне эти цвета в виде моих изображений появляютсья на экране. Ну вы наверное в курсе что такое видеобуфер- вот мне надо к этому участку памяти получить доступ. То есть что мне надо что бы была вроде переменная- указатель:

Код

video_buffer[index] = my_color;


Как сделать этот video_buffer? Мне надо что бы video_buffer указатель располагался с начала адреса A000:0000.

Автор: borisbn 3.3.2011, 15:54
Код

unsigned long far * video_buffer = (unsigned long far *)0xA0000000L;

у меня так работало, но не в Борланде, а в Ваткоме, но, думаю, разницы не должно быть

Автор: kurlyak 3.3.2011, 16:04
Спасибо огромное borisbn. Я уже в принципе сам "дочитал" книгу так сказать (Джеймс Ла Мот "Программирование игр").
Код

unsigned char far* video_buffer = (char far*) a0000000L;


Автор: borisbn 3.3.2011, 18:47
Цитата(kurlyak @  3.3.2011,  16:04 Найти цитируемый пост)
a0000000L;

не будет работать. 0x забыл smile

Автор: xvr 4.3.2011, 14:23
Если уж быть последовательным, то
Код

unsigned char far* video_buffer = (unsigned char far*)MK_FP(0xA000,0);
Кажется так, давно это было, мог и забыть точное название MK_FP  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)