Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Поняття ресурсу програми






Ресурси це наперед визначені дані які знаходяться у виконуваних файлах, які можуть бути використані під час роботи програми. Типи ресурсів: значки, курсори, рядки символів, меню, гарячі клавіші, діалогові вікна, бвтові матриці.

 

7.9 Файли ресурсів

*.rc - Файл опису ресурсів проекту. що забезпечує підтримку ресурсів.

Resource.h- Заголовковий файл ресурсу, що містять визначення ресурсів, використовуваних у проекті.

В залежності від типу ресурса є такі файли ресурсів:

*.ico - іконка

*.cur - курсор

*.bmp - бітова матриця і т.д

 

7.10 Редактори ресурсів

Редактори ресурсів - це спеціалізовані програми для перегляду, створення і зміни ресурсів. З їх допомогою можна, наприклад, створити меню, намалювати іконку чи курсор, створити діалогове вікно, і т.д. Приклади ResEdit, ArtCursor і т д.

 

7.11 Компіляція ресурсів.

Файл ресурсів *.rc можна скомпілювати в файл *.res.З одного боку після компіляції ми отримаємо 1 файл і з ним буде простіше працювати і переносити, але з другого - так як цей файл буде двійковим ми не зможемо його змінити(додати чи видалити ресурси)

 

7.12 Підключення ресурсів до програми.

Щоб підключити ресурси до програми потрібно до проекту додати файл ресурсів *.rc і заголовковий файл Resource.hі використовувати ідентифікатори ресурсів в програмі.

 

7.13 Приклади використання ресурсів: іконки, курсори, рядки, меню, діалоги.

Спочатку треба створити файли ресурсів задопомогою редактора ресурсів(або вручну). Потім додати файл *.rc і заголовковий файл Resource.h до проекту.

Щоб додати іконку до програми потрібно в структурі WNDCLASSEX елементу структури який відповідає за іконку надати значення

wincl.hIcon = LoadIcon (hThisInstance, MAKEINTRESOURCE (MY_ICON)); де MY_ICON - ідентифікатор іконки

Щоб додати курсор до програми потрібно в структурі WNDCLASSEX елементу структури який відповідає за курсор надати значення

wincl.hICursor = LoadCursor (hThisInstance, MAKEINTRESOURCE (MY_CUR)); де MY_CUR - ідентифікатор курсору

Щоб додати діалогове вікно до програми потрібно використати функцію

DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_DIAL), hwnd, AboutDlgProc); де IDD_DIAL - ідент. Діалогового вікна, AboutDlgProc - обробник повідомлень вікна

8.1 Cтатичні бібліотеки

Можуть бути у вигляді вихідного тексту, що підключається програмістом в свою програму на етапі написання (наприклад, для мови Fortran існує величезна кількість бібліотек для вирішення різних завдань саме у вихідних текстах), або у вигляді об'єктних файлів, що приєднуються (лінкуются) до виконуваної програми на етапі компіляції (у Microsoft Windows такі файли мають розширення. lib, в UNIX-подібних ОС - зазвичай. a). В результаті програма включає всі необхідні функції, що робить її автономною, але збільшує розмір.

 

8.2 Бібліотеки динамічного компонування (DLL)

Динамічно зв'язувані бібліотеки (dynamic link library, DLL, динамічні бібліотеки, бібліотечні модулі) – один із найголовніших структурних елементів Microsoft Windows.

Динамічно зв'язані бібліотеки загалом не є безпосередньо виконуваними програмами, і вони не отримують повідомлень. DLL – це окремі файли, що містять функції, до яких можуть звертатися програми і інші DLL, щоб виконувати певні завдання. Динамічно зв'язана бібліотека починає діяти, лише, коли інший модуль звертається до однієї з функцій бібліотеки.

Динамічні бібліотеки можуть містити набір функцій та/або ресурси.

 

8.3 Об’єктні бібліотеки та бібліотеки імпорту.

При статичному підключенні DLL ім'я.lib-файла визначається серед інших параметрів редактора зв'язків у командному рядку або на вкладці " Link" діалогового вікна " Project Settings" середовища Developer Studio. Однак.lib-файл, використовуваний при неявному підключенні DLL, - це не звичайна статична бібліотека. Такі.lib-файли називаються бібліотеками імпортування (import libraries). У них міститься не сам код бібліотеки, а тільки посилання на всі функції, що експортуються з файлу DLL, в якому все і зберігається. В результаті бібліотеки імпортування, як правило, мають менший розмір, ніж DLL-файли.

 

8.3 Статичне та динамічне зв’язування

Статичне зв'язування означає, що DLL завантажується відразу, як тільки починає виконуватися додаток, що буде її використовувати. Виклик функцій у додатку, що використовує подібну DLL, майже не відрізняється від виклику будь-яких інших функцій. Деякими недоліками такого підходу можна вважати збільшення часу завантаження додатка (адже крім виконуваного модуля додатка в цей момент вантажаться й модулі відповідних DLL) і неможливість виконання додатка користувачем, у якого немає відповідного файлу DLL.

Статичне зв'язування потребує, щоб для DLL був створений спеціальний файл описів імпортованих функцій (import library file). Цей файл має те ж ім'я, що й відповідна DLL, і розширення .lib. Цей файл. lib повинен бути пов'язаний з додатком на етапі компіляції.

Динамічне зв'язування відрізняється від статичного тим, що бібліотека DLL завантажується тільки в той момент, коли необхідно виконати якусь функцію, що зберігається в ній. Потім цю бібліотеку можна вивантажити з пам'яті. Це забезпечує, вичайно, більш ефективне використання пам'яті. Але зате виклик відповідних функцій бібліотеки істотно ускладнюється, та й час виклику теж збільшується через необхідність завантажувати й вивантажувати бібліотеку.

Для виклику бібліотечної функції з бібліотеки, що в'язується подібним чином, треба насамперед авантажити бібліотеку функцією LoadLibrary API Windows. Потім за допомогою функції GetProcAddress треба одержати покажчик на функцію бібліотеки, що цікавить вас. Тільки після цього можна виконувати функцію. А потім за допомогою функції FreeLibrary треба вивантажити бібліотеку з пам'яті.

8.4 Неявне та явне завантаження динамічних бібліотек.

Неявне завантаження Динамічні бібліотеки завантажуються в пам'ять при завантаженні програми. Програмний модуль здійснює явні виклики експортованих функцій DLL. Це вимагає, щоб модуль був пов'язаний з бібліотекою імпорту для DLL. Бібліотека імпорту забезпечує операційну систему інформацією, необхідною для завантаження DLL і визначення розташування експортованих функцій при завантаженні програми. При компіляції програми одержують виконуваний модуль із розширенням.EXE. Оскільки програмний модуль не містить усіх необхідних для його роботи функцій, то в ньому створюється розділ імпорту, в якому перераховуються імена усіх DLL-модулів та функцій, які використовуються.

При запуску програми із неявним зв'язуванням завантажувальник ОС створює віртуальний адресний простір для процесу і проектує в нього виконуваний модуль. Потім аналізує розділ імпорту, визначає усі DLL і проектує їх на адресний простір. Якщо DLL викликає інші DLL, то процедура повторюється для кожної із таких DLL.

Явне завантаження Програмний модуль завантажує необхідні DLL по мірі необхідності під час виконання. Для завантаження бібліотеки викликається функція LoadLibrary або LoadLibraryEx. Після того, як DLL завантажена в пам'ять, слід викликати функцію GetProcAddress, щоб одержати адресу експортованої функції DLL. Модуль викликає експортовану функцію, використовуючи вказівник на функцію, повернений GetProcAddress. При цьому відпадає потреба в бібліотеці імпорту.

 

2.1Архітектура та принципи Windows.

ОС Windows 2000 з точки зору архітектури організована як багаторівнева система модулів. Система підтримує захищений (системний) режим, в якому виконуються HAL, ядро і виконавча підсистема (executive). У режимі користувача виповнюється набір підсистем, серед яких - підсистеми оточення, адаптовані різні ОС, з метою сумісності додатків. Підсистеми захисту реалізують різні функції безпеки.

Принцип Plug and Play (включи і працюй), завдяки якому не потрібна спеціальна настройка наявного обладнання комп'ютера. У загальному випадку, досить вставити пристрій в гніздо комп'ютера і далі ОС сама знайде і встановить відповідний драйвер.
Принцип Point and Click (вказати і клацнути) використовується для вибору пункту меню, команди, виділення об'єктів та ін. Виконується він так: покажчик миші переміщається на елемент і натискається ліва кнопка миші.
Принцип Drag and Drop (перемістити і залишити) використовується для копіювання або переміщення об'єктів. Його виконання: виділити об'єкт, натиснути ліву кнопку миші, не відпускаючи її, перетягнути об'єкт на нове місце, відпустити кнопку. Технологія «Drag and Drop» прискорює введення певної інформації в ПК. Дана технологія використовується, наприклад, для копіювання і видалення файлів.
Принцип WYSIWYG (What You See Is What You Get - що бачите, то отримаєте). Принцип використовується в додатках, написаних для системи. Він означає, що сторінка документа виглядає так, як вона буде надрукована на папері.
Технологія OLE (Object Linking and Embedding - зв'язування і вбудовування об'єктів). Дозволяє вбудовувати і редагувати спільно документи різних типів.
Об'єктно-орієнтована технологія. Об'єктно-орієнтована технологія визначає нове розуміння процесу обчислення і те, як можна структурувати інформацію всередині комп'ютера.

 

2.2Поняття про віртуальні машини.

Віртуальнамашина — модель обчислювальної машини, створеної шляхом віртуалізації обчислювальних ресурсів: процесора, оперативної пам'яті, пристроїв зберігання та вводу і виводу інформації.

Віртуальна машина, на відміну від програми емуляції конкретного пристрою, забезпечує повну емуляцію фізичної машини чи середовища виконання (для програми)

Віртуальні машини поділяються на 2 головні категорії, в залежності від їх використання та відповідності до реальної апаратури:

· системні (апаратні) віртуальні машини, що забезпечують повноцінну емуляцію всієї апаратної платформи і відповідно підтримують виконання операційної системи.

· Прикладні віртуальні машини, які розробленні для виконання лише застосунків (прикладних програм), наприклад, Віртуальна машина Java.

 

2.3Запуск DOS-програм у Windows.

Микрософт предлагает DOS-программы на Windows 7 запускать в виртуальной машине. Технология называется Windows XP Mode.

Проблемы

Для каждого пользователя ПК нужно заново создавать его собственную виртуальную машину.

Работают DOS-программы в виртуальной машине очень медленно. В частности, поиск по подстроке в БД из нескольких тысяч записей длится порядка минуты, а в обычной (без виртуализации) Windows XP на аналогичном железе такой поиск происходит мгновенно.

 

2.4Концепції програмування.

Абстрагування (abstraction) - метод рішення задачі, при якому об'єкти різного роду об'єднуються загальним поняттям (концепцією), а потім згруповані суті розглядаються як елементи єдиної категорії. Інкапсуляція (encapsulation) - техніка, при якій несуттєва з точки зору інтерфейсу об'єкту інформація ховається усередині нього.

Спадкоємство (inheritance) - властивістьоб'єктів, за допомогоюякоїекземплярикласудістають доступ до даних і методівкласів-предків без їхповторноговизначення.

Поліморфізм (polymorphism) - властивість, щодозволяєвикористовувати один і той же інтерфейс для різнихдій; поліморфнійзмінній, наприклад, може відповідати декілька різних методів.

Клас (class) - безлічоб'єктів, пов'язанихспільністюструктури і поведінка; абстрактнийописданих і поведінки (методів) для сукупності схожих об'єктів, представникиякоїназиваютьсяекземплярамикласу.

Об'єкт (object) - конкретна реалізаціякласу, щоволодіє характеристиками стану, поведінки і індивідуальності, синонімекземпляра.

Як цевжевідзначалося на самому початку курсу, Java - лише одна з об'єктно-орієнтованихмов. Іншим активно використовуванимпрофесійнимипрограмістамимовою ТОП, з який ми познайомимося у наступномусеместрі, являється C++.

 

 

2.5Процедурні та керовані подіями програми.

У моделі гармонійно взаємодіючих потоків процес виконання програмного комплексу є сукупністю взаємодіючих ниток управління. У системі, керованій подіями, програма є сукупністю об'єктів, що обмінюються повідомленнями про події, а також що реагують на повідомлення, що приходять із зовнішніх джерел.У ідеалі, об'єкти взаємодіють між собою лише через повідомлення. Повідомлення, що приходять, спонукали об'єкт змінити свій стан і, можливо, породити деяку кількість повідомлень, призначених для інших об'єктів. При такій моделі взаємодії нам неважливо, чи виконуються методи об'єктів як паралельні (або псевдопаралельні) нитки, або ж послідовно викликаються єдиною ниткою, менеджером або диспетчером повідомлень.

Кожне повідомлення про подію є структурою даних, яка містить код, що позначає типа події: рух миші, натиснення кнопки і т. д., а також поля, різні для різних типів подій. Для " мишачих" подій — цепоточнікоординатимиші і бітова маска, щопозначає стан кнопок (нажата/отпущена). Для клавіатурнихподій — це код клавіші, щонатискує, зазвичай, ASCII-код символу для алфавітно-цифрових і спеціальнікоди для стрілок і інших " розширених" і " функціональних" клавіш — і бітова маска, щопозначає стан різнихмодифікаторів, таких як SHIFT, CNTRL, ALT і так далі Для візуальнихподій — цекоординатипрямокутника, якийпотрібноперемальовувати, і так далі

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.