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


Автор: sprata 14.9.2008, 18:09
Кто-нибудь имел дело с написанием диспетчера памяти ? Поделитесь пожалуйста исходниками, для ознакомления принципов работы.  Нашел в инете неплохую https://www.ibm.com/developerworks/ru/edu/au-memorymanager/section7.html. Но после прочтения осталось больше вопросов, чем ответов.

Диспетчер памяти понадобился не просто так, а по причине того, что ф-ии getimage() и putimage(), описанные в graphics.h, могут работать с экранной областью, размер которой <= 64K. И разрешение такой экранной области в режиме VGAHI приблизительно 350*350 пикселей, что довольно мало, для среднестатистического окна smile, перемещение которого планируется реализовать в GUI.

Заранее спасибо !

Автор: Lazin 14.9.2008, 18:37
а зачем вам это, и при чем тут GUI?

Автор: nerezus 14.9.2008, 18:38
sprata, ты хочешь сделать GUI под DOS?

Автор: sprata 14.9.2008, 18:52
Цитата(Lazin @  14.9.2008,  18:37 Найти цитируемый пост)
а зачем вам это, и при чем тут GUI?

Цитата(nerezus @  14.9.2008,  18:38 Найти цитируемый пост)
sprata, ты хочешь сделать GUI под DOS?

Графический интерфейс под ДОС это часть моего курсового по ООП. При этом нужно использовать старенький компилятор Borland C++ 3.11 smile А зачем мне диспетчер памяти я уже написал: для реализации перетаскивания окон с помощью мыши, я хочу использовать ф-ии getimage() и putimage(), но они могут работать только с изображением, размер которого не превышает 65535 байт = 64K. А нормально окно, с разрешением хотя бы 500*500 весит намного больше. К тому же я использую режим SVGA 256 1024*768, поэтому размеры картинок далеко превышают 64K. Мой преподаватель по программированию сказал, что из этой ситуации можно выйти написав свой диспетчер памяти, и таким образом обойти это ограничение.

Автор: Lazin 14.9.2008, 19:45
Цитата(sprata @  14.9.2008,  18:52 Найти цитируемый пост)
Мой преподаватель по программированию сказал, что из этой ситуации можно выйти написав свой диспетчер памяти, и таким образом обойти это ограничение.

сильно в этом сомневаюсь, вообще, что за польза учить студентов программировать под дос?

Автор: sprata 14.9.2008, 19:53
Цитата(Lazin @  14.9.2008,  19:45 Найти цитируемый пост)
сильно в этом сомневаюсь

Этот человек мастер своего дела с хорошим опытом, и сомневаться в его высказываниях мне никогда не приходилось.

Цитата(Lazin @  14.9.2008,  19:45 Найти цитируемый пост)
что за польза учить студентов программировать под дос?

Lazin, это конечно оффтоп, но я все таки скажу:  цель этого курсового написать весь графический интерфейс ручками smile А людей, которые накидывают нексолько компонентов на форму, и называют себя после этого программистами, я таковыми не считаю.

ЗЫ: а вообще по теме кто-нибудь мне ответит ? smile

ЗЫЫ: дискуссию по поводу программирования под ДОС, в этой теме прошу не начинать.

Автор: Rpahut 14.9.2008, 20:08
Цитата

А людей, которые накидывают нексолько компонентов на форму, и называют себя после этого программистами, я таковыми не считаю.

Так вы никогда помощи не получите smile  smile 

Если по теме - я б кусками по 64к картинку хранил =) 

Автор: nerezus 14.9.2008, 20:08
Цитата

сильно в этом сомневаюсь, вообще, что за польза учить студентов программировать под дос?
 +1. Ну и научится человек под мертвую систему программировать. А какая с этого польза?

Цитата

Lazin, это конечно оффтоп, но я все таки скажу:  цель этого курсового написать весь графический интерфейс ручками  А людей, которые накидывают нексолько компонентов на форму, и называют себя после этого программистами, я таковыми не считаю.
 Что мешает делать это под windows?

Цитата

А людей, которые накидывают нексолько компонентов на форму, и называют себя после этого программистами, я таковыми не считаю.
 Порограммист должен использовать самый простой из доступных равносильных вариантов. Если текущие "кнопачки" ему подходят - то он ими и воспользуется.
А писать нужно, только если нет вменяемых аналогов, вас искусственно поставили в подобное положение.
С точки зрения идеи - это умно, но с точки зрения реализации полный пипец...
Ну глупо использовать мертвую ОС, неполноценный компилятор и скудные API. Куда красивее было бы задание сделать подобное... ну например в OpenGL

Кстати сам такое делал я на J2ME. Не было вариантов.


Цитата

 а вообще по теме кто-нибудь мне ответит?
 Я отвечу.
1) Использовать менеджер памяти DOS/4GW, справку ищи тут: http://www.tenberry.com/dos4g/faq/index.html
2) Усомниться в преподавателе, который учит пользоваться мертвыми технологиями.

Автор: woof 14.9.2008, 20:23
Цитата

+1. Ну и научится человек под мертвую систему программировать. А какая с этого польза?

мне препод говорит, типа это для начала научитесь писать под дос
с ассемблером такая же байда

Автор: nerezus 14.9.2008, 20:28
Цитата

мне препод говорит, типа это для начала научитесь писать под дос
 Как он это аргументировал?

Автор: Alek86 14.9.2008, 20:54
в такой учебе смысл есть
к примеру, чтобы осознать как работает система отображения оконного интерфейса
правда учеба будет уж очень медленно продвигаться - лучше вемсто этого рихтера проштудировать и написать прогу с серьезным гуевым интерфейсом

имхо, конечно smile

а по теме автору уже ответили

Автор: sprata 14.9.2008, 21:08
Цитата(Rpahut @  14.9.2008,  20:08 Найти цитируемый пост)
Так вы никогда помощи не получите 

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

Цитата(nerezus @  14.9.2008,  20:08 Найти цитируемый пост)
2) Усомниться в преподавателе, который учит пользоваться мертвыми технологиями.

Ну вообще то существует программа обучения по каждой специальности, которую разрабатывает не один преподаватель. Сейчас во многих технических ВУЗах Украины начинают изучение программирования со среды под ДОС. У нас это был Си. У кого-то Паскаль. 

nerezus, большое спасибо за ссылку smile

Автор: nerezus 14.9.2008, 21:15
Цитата

к примеру, чтобы осознать как работает система отображения оконного интерфейса
 А разве нельзя осознать это на немертвых технологиях? Можно. Так почему тогда используются мертвые?

Добавлено через 8 минут и 3 секунды
Цитата

Ну вообще то существует программа обучения по каждой специальности, которую разрабатывает не один преподаватель. Сейчас во многих технических ВУЗах Украины начинают изучение программирования со среды под ДОС. У нас это был Си. У кого-то Паскаль. 
 У нас был C. Но никаких извращений с графикой мы не писали.

А на уроках ООП изучали Qt(а наша группа MFC).
Уж куда полезнее, поверь. По крайней мере применяемо на практике.

Автор: sprata 14.9.2008, 21:30
Цитата(Rpahut @  14.9.2008,  20:08 Найти цитируемый пост)
Если по теме - я б кусками по 64к картинку хранил =) 

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

Автор: Rpahut 14.9.2008, 22:08
А вы думаете если они вместе будут сохранены, сильно быстрее будет рисоваться? Попробуйте как в винде - при перетаскивании отображать только рамку окна, расчитать какие части других окон были скрыты а теперь видны, потребовать у окон перерисовать эти части. Потом уже отрисовать перетащеное окно полностью на новом месте.

Автор: sprata 14.9.2008, 22:11
Цитата(Rpahut @  14.9.2008,  22:08 Найти цитируемый пост)
Попробуйте как в винде - при перетаскивании отображать только рамку окна, расчитать какие части других окон были скрыты а теперь видны, потребовать у окон перерисовать эти части. Потом уже отрисовать перетащеное окно полностью на новом месте.

Rpahut, а это действительно хорошая мысль smile Спасибоо большое за идею +1   

ЗЫ: когда наберу 100 постов, то обязательно прибавлю Вам заслуженый +1

Автор: Rpahut 14.9.2008, 23:26
Я сам еще когда их наберу ))

Автор: Alek86 14.9.2008, 23:45
оффтоп
Цитата(sprata @  14.9.2008,  22:11 Найти цитируемый пост)
ЗЫ: когда наберу 100 постов, то обязательно прибавлю Вам заслуженый +1

sprata, можно просто попросить других поставить smile

Автор: sprata 15.9.2008, 05:41
Alek86, спасибо smile

Автор: Lazin 15.9.2008, 07:54
Цитата(sprata @ 14.9.2008,  21:30)
Цитата(Rpahut @  14.9.2008,  20:08 Найти цитируемый пост)
Если по теме - я б кусками по 64к картинку хранил =) 

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

железная логика, из чего следует, что это происходит из за того, что память медленно выделяется - освобождается?

Автор: nerezus 15.9.2008, 08:31
Lazin, +1
На самом деле ему нужно просто написать нормальную ф-ию для работы со спрайтами.
И окошко рисовать из рамки(4 кусочков(2 уголка и гориз. и вертик. линии)), заголовка(3 кусочка: 2 унрлка и вертик. линия)
и т.д.

Автор: J0ker 17.9.2008, 06:34
Цитата(sprata @ 14.9.2008,  18:52)
я хочу использовать ф-ии getimage() и putimage(), но они могут работать только с изображением, размер которого не превышает 65535 байт = 64K.

и я даже подозреваю с чем это связано хыхыхы
вот только этими функциями вы и с персональным диспетчером скорее всего воспользоваться не сможете

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