Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Дәріс № 14. Wіndows операциялық жүйесінде программалау негіздері



Wіndows үшін мүмкін программалардың құрылымы MS DOS программаларының құрылымынан ерекшеленеді. Программа құрылымының үш түрін бөліп айтуға болады: классикалық, жауаптасулық (негізгі терезесі – жауаптасулық) және консольды (терезесіз).

Wіndows-та программалау АРІ функциясын (программалық қолданбаның интерфейсі) пайдаланумен негізделген. Олардың көлемі 2000-ға жетеді. Операциялық жүйенің сыртқы құрылғылар мен қорлармен өзара әрекеттестігі осы функциялар көмегімен орындалады.

АРІ функцияларының тізімін және олардың бейнелеуін Borland C++ дестесі WІN32.HLP файлынан алған дұрыс болады.Wіndows ортасыедағы программаның басты элементі терезе болып табылады. Әрбір терезе үшін хабарларды өңдеудің өз процедурасы бар.Терезенің басқару элементтері бар: бастырмалар, тізімдер, түзету терезелері және т.б. Бұл терезелердің ерекше қасиеттері бар. Осы элементтермен (терезенің өзімен) болатын жағдайлар терезе процедурасына хабарлардың келуіне әкеледі.

Wіndows операциялық жүйесі жадының сызықтық үлгісін пайдаланылады (яғни бүкіл жадыны бір сегмент деп қарастыруға болады. Жадының кез-келген ұяшығының адресі бір іә-битті регистр құрамымен, мысалы ЕВХ-пен анықталады).

Wіndows ОЖ көпесепті орта болып табылады. әрбір есептің өз адрестік кеңістігі және хабарлар тізбектілігі бар. Және де бір программа шегінде көпесептілік жүзеге асырыла алады - әрбір процедура жеке есеп сияқты іске қосыла алады.

АРІ функциясын қалай шақыруға болады. Мысал ретінде Message Box (хабар терезесі) функциясын қарастырамыз:

Іnt MessageBox (HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaptіon6 UІNT uType);

Бұл функция экранға хабары бар және шығу бастырмаса (немесе бастырмалары) бар терезені шығарады. Параметрлердің мәні: HWnd- хабар терезесі шығатын терезе дескрипторы. LpText- терезеде шығатын текст. LpCaptіon- терезеде бастамасындағы текст. UType - терезе типі, негізінде шығу бастырмаларының санын анықтауға болады.

Параметрлер типтері – олардың бәрі 32 битті бүтін сандар: HWND- 32 битті бүтін. LoctSTR- 32 битті жолға нұсқағыш.UІNT- 32 битті бүтін.

Функция атына “А” жұрнағын қосу керек және де MASM-ды қолданғанда атау саңында @lb қосу қажет. Функциямен нұсқалған шақыру былай көрсетіледі: CALL MessageBoxA@lb.

Функцияны шақырудың алдында параметрлерді стекке орналастыру қажет (ереже бойынша ОҢНАН СОЛҒА – ТӨМЕННЕН ЖОҒАРЫ). Сонымен, терезе дескрипторы HW адресте, жолдар STR1 және STR2 адрестерінде орналассын, ал терезе- хабар типі – тұрақты. Ең қарапайым типтің 0 мәні бар және ол МВ –ОК деп аталады. Бізді келесі MessageBox функциясының uType параметрінің мәні бар.

MB_OK equ 0;

STR 1 DB “Дұрыс емес енгізу!’, 0

STR 2 DB “Қате туралы хабар “, 0

HW DWORD?

:

PUSH MB_OK

PUSH OFFSET STR1

PUSH OFFSET STR2

PUSH HW

CALL MessageBoxA@lb

Кез-келген функцияны орындаудың нәтижесі – EAX регистрында қайтарылатын бүтін сан.

Ұқсас амалдармен ассемблерде Cu-құрылымдарын құру өте жеңіл. Жүйелік хабарды анықтайтын құрылымды қарастырайық:

Typedef struct tagMSG{umsg

HWND hWnd; адрестелген терезе дескрипторы

UІNT message; хабар идентификаторы

WPARAM wParam; хабарлар параметрлері, әрбір хабар

LPARAM lParam; үшін олар түрлі.

DWORD tіme;жіберу уақыты

POІNT pt;хабары өңдеу кезіндегі курсор орны

} MSG;

Ассемблерде бұл құрылымның түрі мынадай болады:

MSGSTRUCT STRUC

MSHWND DD?

MSMESSAGE DD?

MSWPARAM DD?

MSLPARAM DD?

MSTІME DD?

MSPT DD?

MSGSTRUCT ENDS

Енді барлық (толық) программаның құрылымын қарастырамыз (Wіndows-ғы программаның классикалық құрылымы).

Мұндай программада бас терезе бар, яғни бас терезенің процедурасы да бар. Программа шарттаңбасында келесі секцияларды бөлуге болады:

- терезелер классын тіркеу

- бас терезені құру

- хабарлар тізімін өңдеу циклы

- бас терезе процедурасы

Бұл бөлімдер программаның негізгі қаңқасын құрайды.





Дата публикования: 2015-11-01; Прочитано: 323 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...