Структура та принцип роботи Win9x/NT, Детальна інформація
Структура та принцип роботи Win9x/NT
Міністерство освіти України
Львівський державний університет ім. І. Франка
Факультет прикладної математики
та інформатики
Звіт
про виконання практичного завдання з курсу
"Лабораторії спеціалізації"
Львів – 1998
Структура та принцип роботи Windows 95, 98, NT.
Структура та ядро Windows.
Сама можливість роботи 32-х розрядної системи Windows пов’язана з існуванням динамічно підключаємих бібліотек DLL. Дискова операційна система MS-DOS перевизначала переривання з визначеними номерами (насамперед 21h), програмування таким чином перетворювалося на виклик цих переривань за допомогою ассемблерних інструкцій або функцій-обгорток мов програмування високого рівня. Очевидно, оскільки DOS не підтримував багатозадачності, модулі з перевизначеними функціями знаходилися в пам’яті резидентно, що могло мішати виконанню певних програм. Windows же використовує динамічно підключаємі бібліотеки DLL з набором функцій що експортуються, тобто можуть бути використані програмою, що запускається в середовищі Windows. Таких функцій існує величезна кількість, що залежить від конкретної системи (для Windows NT – 5.0 ця кількість досягає 3000). Ці функції називаються функціями Windows API (Application Programing Interface) і містяться в файлах kernel32.dll, gdi32.dll, shell32.dll, user32.dll, commctrl.dll, ctl3d32.dll та багатьох інших. Дані бібліотеки (особливо перші чотири) називаються ядром Windows.
Події Windows.
Також важливою відмінністтю від DOS є те, що Windows є подійно-орієнтованою системою. Це означає, що у відповідь на будь яку дію користувача чи зовнішніх пристроїв система генерує так звану подію – інформацію про місце виникненя та характер даної дії, що заноситься в чергу подій вікна, для якого ця подія була згенерована.
Вікна у Windows.
l
t
¬
°
\x00B2
\x00B8
\x00BA
¤
\x00AA
¬
це вікна Windows. Робочий стіл (Desktop) також являється вікном Windows, дескриптор на нього можна отримати функцією GetDesktopWindow. Що до можливості малювати себе, то кожне вікно володіє так званим контекстом пристрою (Device context). З ним пов’язані усі можливості виводу зображеня на екран дісплея. Бібліотека gdi32.dll експортує велику кількість функцій для виведеня на екран текста та графіки. Отримати контекст пристрою для вікна можна за допомогою функцій GetDC та GetWindowDC. Контекст пристрою, отриманий за допомогою GetWindowDC дозволяє малювання в неклієнтній частині вікна, якщо вікно її містить.
Регіони Windows.
Як вже вище зазначалося, вікна можуть мати не обов’язково прямокутну форму. При створені вікна функцією CreateWindow або CreateWindowEx вікну виділяється прямокутна частина екрана, розміри потім можуть змінюватися. Вікно не може використовувати нічого поза цим прямокутником. Але цей прямокутник не обов’язково використовується повністю. Кожне вікно має дескріптор регіону, доступ до якого отримується за допомогою функцій SetWindowRgn та GetWindowRgn. Власне регіон можна створити за допомогую функцій CreateEllipticRgn (елліпс), CreatePolygonRgn (багатокутник), CreateRectRgn (прямокутник) і т.д. Також регіони можна комбінувати довільним чином (додавати, віднімати, об’єднювати і т.д.) за допомогою функції CombineRgn утворюючи регіони будь якої форми. Встановивши потім утворений регіон для певного вікна функцією SetWindowRgn, доб’ємося того, що буде відображатися лише частина виділеного для нього прямокутника (в формі регіона).
Обробка подій вікнами.
Як вже зазаначалося, Windows являється подійно-орієнтованою системою і кожному вікну передаються певні події. Це відбувається через виклик головної функції вікна. Цю функцію створює програміст або високорівнева система програмування (наприклад Delphi) генерує її самостійно. Адреса цієї функції в пам’яті передається системі на етапі створеня вікна. При виникнені події система Windows викликає цю функцію і передає їй три параметра – код події та два цілих числа, що можуть означати будь що в контексті даної події (код натисненої клавіши, стан кнопок миші і т.п.).
PAGE 1
Львівський державний університет ім. І. Франка
Факультет прикладної математики
та інформатики
Звіт
про виконання практичного завдання з курсу
"Лабораторії спеціалізації"
Львів – 1998
Структура та принцип роботи Windows 95, 98, NT.
Структура та ядро Windows.
Сама можливість роботи 32-х розрядної системи Windows пов’язана з існуванням динамічно підключаємих бібліотек DLL. Дискова операційна система MS-DOS перевизначала переривання з визначеними номерами (насамперед 21h), програмування таким чином перетворювалося на виклик цих переривань за допомогою ассемблерних інструкцій або функцій-обгорток мов програмування високого рівня. Очевидно, оскільки DOS не підтримував багатозадачності, модулі з перевизначеними функціями знаходилися в пам’яті резидентно, що могло мішати виконанню певних програм. Windows же використовує динамічно підключаємі бібліотеки DLL з набором функцій що експортуються, тобто можуть бути використані програмою, що запускається в середовищі Windows. Таких функцій існує величезна кількість, що залежить від конкретної системи (для Windows NT – 5.0 ця кількість досягає 3000). Ці функції називаються функціями Windows API (Application Programing Interface) і містяться в файлах kernel32.dll, gdi32.dll, shell32.dll, user32.dll, commctrl.dll, ctl3d32.dll та багатьох інших. Дані бібліотеки (особливо перші чотири) називаються ядром Windows.
Події Windows.
Також важливою відмінністтю від DOS є те, що Windows є подійно-орієнтованою системою. Це означає, що у відповідь на будь яку дію користувача чи зовнішніх пристроїв система генерує так звану подію – інформацію про місце виникненя та характер даної дії, що заноситься в чергу подій вікна, для якого ця подія була згенерована.
Вікна у Windows.
l
t
¬
°
\x00B2
\x00B8
\x00BA
¤
\x00AA
¬
це вікна Windows. Робочий стіл (Desktop) також являється вікном Windows, дескриптор на нього можна отримати функцією GetDesktopWindow. Що до можливості малювати себе, то кожне вікно володіє так званим контекстом пристрою (Device context). З ним пов’язані усі можливості виводу зображеня на екран дісплея. Бібліотека gdi32.dll експортує велику кількість функцій для виведеня на екран текста та графіки. Отримати контекст пристрою для вікна можна за допомогою функцій GetDC та GetWindowDC. Контекст пристрою, отриманий за допомогою GetWindowDC дозволяє малювання в неклієнтній частині вікна, якщо вікно її містить.
Регіони Windows.
Як вже вище зазначалося, вікна можуть мати не обов’язково прямокутну форму. При створені вікна функцією CreateWindow або CreateWindowEx вікну виділяється прямокутна частина екрана, розміри потім можуть змінюватися. Вікно не може використовувати нічого поза цим прямокутником. Але цей прямокутник не обов’язково використовується повністю. Кожне вікно має дескріптор регіону, доступ до якого отримується за допомогою функцій SetWindowRgn та GetWindowRgn. Власне регіон можна створити за допомогую функцій CreateEllipticRgn (елліпс), CreatePolygonRgn (багатокутник), CreateRectRgn (прямокутник) і т.д. Також регіони можна комбінувати довільним чином (додавати, віднімати, об’єднювати і т.д.) за допомогою функції CombineRgn утворюючи регіони будь якої форми. Встановивши потім утворений регіон для певного вікна функцією SetWindowRgn, доб’ємося того, що буде відображатися лише частина виділеного для нього прямокутника (в формі регіона).
Обробка подій вікнами.
Як вже зазаначалося, Windows являється подійно-орієнтованою системою і кожному вікну передаються певні події. Це відбувається через виклик головної функції вікна. Цю функцію створює програміст або високорівнева система програмування (наприклад Delphi) генерує її самостійно. Адреса цієї функції в пам’яті передається системі на етапі створеня вікна. При виникнені події система Windows викликає цю функцію і передає їй три параметра – код події та два цілих числа, що можуть означати будь що в контексті даної події (код натисненої клавіши, стан кнопок миші і т.п.).
PAGE 1
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021