Проблема №2. - раздел Религия, Хранения формы в динамических библиотеках Пока Существовали Только Однозадачные Операционные Системы, Проблема С Излишн...
Пока существовали только однозадачные операционные системы, проблема с излишней растратой дискового пространства была единственной. Но как только задумались о многозадачности и в мыслях Билла Гейтса появились идеи создать Windows, так сразу возникла другая проблема…. Представь себе ситуацию, когда ты запускаешь обе этих программы одновременно. При старте любой код грузится в оперативную память и только потом выполняется. Так что получается, что обе программы загрузят в память один и тот же код. Вот это уже абсолютно никому не нужно.
Это только в последнее время память подешевела в несколько раз, и теперь лишние сто кило погоды не сделают. А раньше она стоила достаточно дорого, и люди боролись за каждый байтик потом и кровью. Но если ты думаешь, что если поставить в свой компьютер 500 мегабайт оперативной памяти и проблема уйдёт сама собой, то ты крупно ошибаешься.
Хотя память и дешевая, программы от этого меньше не станут. Если посмотреть на запросы той же Windows 2000, то сразу понятно, что эти 500 мегабайт это только капля в море. Самая простая ОС Windows 2000 Professional отнимет от них около 128 мегабайт. Это что же там такое натворили, что Windows 2000 Server просит для нормальной работы минимум 256 мегабайт? А если учесть, что ещё недавно чипсеты не поддерживали памяти более 512 мегабайт (это сейчас можно от 2 до 3 гигабайт вставить), то о нормальной одновременной работе Windows 2000 Server + 3D Studio Max + MPEG4 можно забыть. Они всю память отберут, как термиты за пять сек.
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ:
Проблема №2.
Что будем делать с полученным материалом:
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Решение №1.
Самым первым решением этой проблемы стал модульное программирование. Ты пишешь какой-то кусок кода, оформляешь его в виде модуля, а потом просто используешь его в своих программах. Все прекрасно и
Проблема №1.
Давай представим ситуацию, когда один добрый человек написал прекрасный модуль размером в 1 мегабайт. Другой добрый человек решил воспользоваться его возможностями и подключил к своей программе. Мо
Решение №2.
И вот тут было найдено вполне солидное решение: не стыковать модули с основной программой, а сохранять их в отдельный файл и пусть любая программа загружает его по мере надобности. Сказали, сделали
Из чего же сделан Windows?
Все наверно помнят такую песенку: "Из чего же, из чего же, из чего же, сделаны эти мальчишки?". Глупейшая песня, и я со слезами на глазах вспоминаю, как я в лагере (я имею ввиду пионерски
Графические движки.
Любой игрок обязан знать про существование OpenGL. Что это такое? Какой-то пакет программ? Какой-то SDK для создания графики? Ничего подобного, это всего лишь две динамические библиотеки opengl.dll
Begin end.
Если открыть менеджер проектов (Меню View->Project Manager), то в окне вообще не будет видно ни одного модуля. Это потому что код, который мы видели выше относиться к самой библиотеки. Вы
Begin end.
Обрати внимание, что функция у нас объявлена не так как всегда. В конце строки объявления, после типа возвращаемого значения стоит ключевое слово StdCall. Оно говорит о том, что дл
R:Integer; begin
r:=Summ(10,34);
Application.MessageBox(PChar(IntToStr(r)), 'Результат функции Summ'); end;
В первой строчке я вызываю функцию Summ с двумя
Implementation
Обрати внимание, что первое описание процедуры я написал не в разделе type, а до него:
procedure ShowAbout(Handle: THandle)stdcall;
Это не являет
If f>0 then
FreeAbout(f);
f:=ShowAbout(Handle); end;
Здесь идёт проверка, если f больше нуля, то надо освободить память от старого окна, а потом пытат
If @sa=nil then exit;//Функция не найдена
f:=sa(Handle); FreeLibrary(dllHandle); end;
Здесь у меня объявлено две локальные переменные: dllHandle – здесь будет храниться указатель на загруженную библиот
DLLEntryPoint(DLL_PROCESS_ATTACH); end.
В разделе usesпоявилось объявление двух новых модулей windows и dialogs, без них наш код не скомпилируется. Чуть дальше появилась процедура DLLEntryPoint с одн
Begin end.
Первое, что здесь бросается в глаза – объявление в разделе typeнового типа – TCompProc. Новый тип объявлен как процедура с одним параметром в виде переменной типа PChar
Хотите получать на электронную почту самые свежие новости?
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Новости и инфо для студентов