Турбо Паскаль тілінің динамикалы байланысатын кітапханалары
Жоспар
Турбо Паскаль тілінің динамикалы байланысатын кітапханалары
І Кіріспе
ІІ Негізгі бөлім
а) Динамикалы қосылатын кітапханалар.
б) Динамикалы байланысатын кітапханаларды құру.
в) ДИ-ден процедуралар мен функцияларды импорттау.
г) Статикалық және динамикалық жүктеулер
д) Динамикалы байланысатын кітапханаға форманы енгізу
программасы
ІІІ Қорытынды
Қолданылған әдебиеттер
Динамикалы байланысатын кітапханалар
Динамикалы байланысатын кітапханалар – Dinamically Linked Libraries
(DLL) - Dos Windows режимдерімен жұмыс жасау кезінде енгізілге
программаларға қосымша мүкіндіктер береді. Және де олар компютердың тек BP.
EXE, BPC. EXE, BPW. EXE версияларымен ғана құралған болуы мүмкін.
Қазіргі таңда стандарттық динамикасы байланысатын кітапханалардың
(DLL) программамен жабдықтауды программистерге келешекте стандартты
программалармен қатар қолдануға мүмкіндік беретін өз динамикалы
байланысатын кітапханаларын (ДИ) құруға мүмкіндік береді, сондай
фирмалардың бірі – Borland Pascal With Object.
Алғашында динамикалы байланысатын кітапханалар Windows-тың
бөлімдерінде қолданылған. Borland Object динамикалы байланысатын
кітапханаларды Dos режимі үшін де жұмыс жасауға мүмкіндік жасады.
ДИ сияқты кітапханалардың құндылығы- олардың оперативті жадты
жүктегеннен кейін де енгізілген программалармен қатар, олар Ди-дің Windows
үшін жұмыс істеуімен бірдей болады. Бұл құрылым жұмыс жасаушыларға Dos-та
қалай жұмыс істесе Windows-та да дәл солай жұмыс істеуге де программалар
құруға мүмкіндік береді.
Сонымен қатар, ДИ көп тілді проекттерді қолдайды,
яғни: Borland Pascal With Object тілінде жазылған программаларда басқа
тілдерде жазылған ДИ, ал басқа тілдерде жазылған программаларда Borland
Pascal With Object тіліндегі ДИ қолданылады.
Динамикалы байланысқан кітапханалардың жазылу синтаксисі келесі түрге
ие:
Динамикалы байланысқан кітапхана -тілдің құрылымы бір жағынан
модуль құрылымының жалғасы мен өнімі болса, екінші жағынан онымен
салыстырғанда кейбір шектеулерге ие болып табылады.
ДИ –дің ерекшелігі келесі түрдегі белгілермен анықталады:
• Негізгі программадағы модульдердің компоненттері статистикалық
түрде тек компотентция кезінде ғана орындалады, ал ДИ –
программаның орындалу барысында динамикалы болып табылады. Бұның
өзі бір уақытта жұмыс істейтін бірнеше программалар үшін
әрқайсысынан қолданылған функциялар мен процедуралардың тек бір
ғана көшірмелерін оперативтік жадта ұстап тұруға мүмкіндік
береді.
• Модульді қоспағанда, ДИ-дің кодтары мен ресурстары оған
қолданылып отырған программада компанантталады, ДИ-типті арнайы
орынлатын файлда болады.
• Программа арқылы шақырылған ДИ-дің функциялары мен процедуралары
онымен тек динамикалы түрде ғана байланысады.
• ДИ-дің модульмен салыстырғандағы шектеулігі мынада, модульдер
шектеулігі тілдік бірліктерді (типтер, тұрақтылар, айнымалылар
және т.б) импорттай алады, ал ДИ тек қана функциялар мен
процедураларды ғана. Бірақ, ДИ тек айнымалыларды қамтамасыз ете
алад, ал модульдер болса, оларды қолдану үшін импорттай алмайды.
ДИ-дің айнымалыларына кез-клген байланыс процедуралық интерфейе
арқылы жасалынған болуы тиіс.
• Қолданылуы арқылы құрылып, компиляциялауға жіберілген
программаларға қолданылған ДИ модульдер сияқты автоматты түрде
компиляцияланбайды. Оны, яғни, ДИ-ді арнайы (жеке) компиляциялау
талап етіледі.
Динамикалы қосылатын кітапханалар
Динамикалы қосылатын кітапханалар (Dinamik Link Library) сіздің
программаңызға Object Pascal программалау тілінде басқа бір программистің
жазған функциялары мен процедураларын интегралдаудың әмбебап механизмін
ұсынады. ДИ жұмысқа дайын процедуралар, функциялар немесе ресурстардан
құралған жасанды модуль түрінде реакцияланады. Программисттердің
болжауынша, ДИ мен жай ғана Object Pascal модульдерінің арасында үлкен
ұқсастық болады, себебі бұлардың екеуі де программистерге программаның
басында өз кодтарын жазудан бас тартуға мүмкіндік береді. Бірақ,
принциптік айырмашылықтары да бар Бұлардың ішіндегі ең негізгісі ДИ-дің
программасын орнатуға мүмкіндігі жоқ айнымалылар, тұрақтылар және типтер
болып табылады. Себебі, Ди-ді жасаушылар программалау тілдерінің типсіз
түрін, ассамблерді қолдана алады. Нәтижеде, ДИ бүгінгі таңда программистер
үшін өте қажетті болып табылатын кластарды программаға экспорттай алмайды.
Бұл үшін тек пакеттер ғана қолданылады. Тағы бір негізгі айырмашылық болып
табылатыны – программаларының байланысу әдістері. Модульдер программамен
тек компоненттеу бөлімі арқылы байланысады. Егер бірдей модульді екі
программа іске қосылған болса, онда жадта бірдей прагменттегі кодтардың екі
данасы болады. Сонымен қатар ДИ программаға орындалу кезінде қосылады.
Егер тағы да екі программа бірдей кітапхана ДИ-ді қолданған болса, онда
программа арқыл кодтарды айырудың тек бір ғана данасы жадта сақталады. Бұл
компьютердің физикалық жады екендігін анықтауға тура келеді. Әрбір
программа өзінің орналасуына қарай белгілі бір орын алады да бұлар ДИ
кітапханаларының бейнесі ретінде көрінеді. Динамикалық қосылу ДИ-ге
модульдер арқылы мағынасы онша қажетті бола қймайтын мәліметтерді береді.
Олар: ДИ кітапханасының кез-келген өзгертулері қолданылып отырған
программаның міндетті түрде ауыспалы болуын талап етеді.
ДИ-ден процедуралар мен функцияларды импорттау
Borland Pascal With Object тілінде жазылған программалар мен модульдер ДИ-
ден процедуралар мен функцияларды үш тәсілмен импорттай алады.
1. Атауы бойынша
2. Жаңа Атауы бойынша
3. Ретті номері бойынша
Процедуралардың немесе функциялардың импорттаудағы фактілері оның
программаларына немесе модульдеріне сай келетін жазбаларында көрсетілген Ди-
ден импортталған процедуралар мен функциялар мына талаптарды
қанағаттандырулары тиіс.
• Міндетті түрде External процедуралық мәліметі қолданылуы
керек.
• ДИ-дің атауы External мәліметінен кейін көрсетіледі.
• Процедуралық far мәліметі арқылы немесе компилятордың {$ F
+} мәліметі арқылы орнатылған модель қолданылуы керек.
Атауы бойынша импорттау процедуралар немесе функциялар жазылуында
index және name мәліметтері бар болған жағдайда ғана өз атауларымен
импортталады.
Мысалы:
Бұл жазылымда MyProc процедурасы MYLIB динамикалы байланысқан
кітапханадан өз атауы бойынша, яғни MyProc деп импортталады.
Жаңа атауы бойынша импорттау.
Егер процедура немесе функция бөлімінде name мәліметі көрсетілген болса,
онда ол өз атауы бойынша емес name-ге көрсетілген атау бойынша
импортталады.
Мысалы:
Бұл жазылымда MyProc процедурасы MYLIB динамикалы байланысқан
кітапханадан өз атауы бойынша Яғни, MyProc бойынша емес, жаңа бір атау
NEWNAME бойынша импортталады. Бұл жаңа атау үшін кез-келген тұрақты шаманы
алуға болады.
Реттік номері бойынша импорттау
Егер процедура немесе функция бөлімінде index мәліметі көрсетілген болса,
онда ол өз атауы бойынша емес Іndex мәліметіне көрсетілгенмен импортталады.
Мұндай импорттау модульдік жүктелу уақытын азайтады.
Мысалы:
Бұл жазылымда MyProc процедурасы MYLIB динамикалы байланысқан
кітапханадан 7 индексі бойынша импортталады.
Статикалық жүктеу
type
TComplex = record
Re, Im : Real:
end:
function ADDC (x,y: TComplex): TComplex: stdcall: External “Cmp lx. dll” :
function Subc (x,y: TComplex): TComplex: stdcall: External “Cmp lx. dll”
:
function Mulc (x,y: TComplex): TComplex: stdcall: External “Cmp lx. dll”
:
function Divc (x,y: TComplex): TComplex: stdcall: External “Cmp lx. dll”
:
Procedure TfmExample. bbRunClick (Sender: TObject):
vai
x,y, z: TComplex
... ары қарай bbRunClick мәтінін қараша
Source (Chap - 02) Custom Variant Unit 1. Pas файлында
end:
end:
Cmplx ... жалғасы
Турбо Паскаль тілінің динамикалы байланысатын кітапханалары
І Кіріспе
ІІ Негізгі бөлім
а) Динамикалы қосылатын кітапханалар.
б) Динамикалы байланысатын кітапханаларды құру.
в) ДИ-ден процедуралар мен функцияларды импорттау.
г) Статикалық және динамикалық жүктеулер
д) Динамикалы байланысатын кітапханаға форманы енгізу
программасы
ІІІ Қорытынды
Қолданылған әдебиеттер
Динамикалы байланысатын кітапханалар
Динамикалы байланысатын кітапханалар – Dinamically Linked Libraries
(DLL) - Dos Windows режимдерімен жұмыс жасау кезінде енгізілге
программаларға қосымша мүкіндіктер береді. Және де олар компютердың тек BP.
EXE, BPC. EXE, BPW. EXE версияларымен ғана құралған болуы мүмкін.
Қазіргі таңда стандарттық динамикасы байланысатын кітапханалардың
(DLL) программамен жабдықтауды программистерге келешекте стандартты
программалармен қатар қолдануға мүмкіндік беретін өз динамикалы
байланысатын кітапханаларын (ДИ) құруға мүмкіндік береді, сондай
фирмалардың бірі – Borland Pascal With Object.
Алғашында динамикалы байланысатын кітапханалар Windows-тың
бөлімдерінде қолданылған. Borland Object динамикалы байланысатын
кітапханаларды Dos режимі үшін де жұмыс жасауға мүмкіндік жасады.
ДИ сияқты кітапханалардың құндылығы- олардың оперативті жадты
жүктегеннен кейін де енгізілген программалармен қатар, олар Ди-дің Windows
үшін жұмыс істеуімен бірдей болады. Бұл құрылым жұмыс жасаушыларға Dos-та
қалай жұмыс істесе Windows-та да дәл солай жұмыс істеуге де программалар
құруға мүмкіндік береді.
Сонымен қатар, ДИ көп тілді проекттерді қолдайды,
яғни: Borland Pascal With Object тілінде жазылған программаларда басқа
тілдерде жазылған ДИ, ал басқа тілдерде жазылған программаларда Borland
Pascal With Object тіліндегі ДИ қолданылады.
Динамикалы байланысқан кітапханалардың жазылу синтаксисі келесі түрге
ие:
Динамикалы байланысқан кітапхана -тілдің құрылымы бір жағынан
модуль құрылымының жалғасы мен өнімі болса, екінші жағынан онымен
салыстырғанда кейбір шектеулерге ие болып табылады.
ДИ –дің ерекшелігі келесі түрдегі белгілермен анықталады:
• Негізгі программадағы модульдердің компоненттері статистикалық
түрде тек компотентция кезінде ғана орындалады, ал ДИ –
программаның орындалу барысында динамикалы болып табылады. Бұның
өзі бір уақытта жұмыс істейтін бірнеше программалар үшін
әрқайсысынан қолданылған функциялар мен процедуралардың тек бір
ғана көшірмелерін оперативтік жадта ұстап тұруға мүмкіндік
береді.
• Модульді қоспағанда, ДИ-дің кодтары мен ресурстары оған
қолданылып отырған программада компанантталады, ДИ-типті арнайы
орынлатын файлда болады.
• Программа арқылы шақырылған ДИ-дің функциялары мен процедуралары
онымен тек динамикалы түрде ғана байланысады.
• ДИ-дің модульмен салыстырғандағы шектеулігі мынада, модульдер
шектеулігі тілдік бірліктерді (типтер, тұрақтылар, айнымалылар
және т.б) импорттай алады, ал ДИ тек қана функциялар мен
процедураларды ғана. Бірақ, ДИ тек айнымалыларды қамтамасыз ете
алад, ал модульдер болса, оларды қолдану үшін импорттай алмайды.
ДИ-дің айнымалыларына кез-клген байланыс процедуралық интерфейе
арқылы жасалынған болуы тиіс.
• Қолданылуы арқылы құрылып, компиляциялауға жіберілген
программаларға қолданылған ДИ модульдер сияқты автоматты түрде
компиляцияланбайды. Оны, яғни, ДИ-ді арнайы (жеке) компиляциялау
талап етіледі.
Динамикалы қосылатын кітапханалар
Динамикалы қосылатын кітапханалар (Dinamik Link Library) сіздің
программаңызға Object Pascal программалау тілінде басқа бір программистің
жазған функциялары мен процедураларын интегралдаудың әмбебап механизмін
ұсынады. ДИ жұмысқа дайын процедуралар, функциялар немесе ресурстардан
құралған жасанды модуль түрінде реакцияланады. Программисттердің
болжауынша, ДИ мен жай ғана Object Pascal модульдерінің арасында үлкен
ұқсастық болады, себебі бұлардың екеуі де программистерге программаның
басында өз кодтарын жазудан бас тартуға мүмкіндік береді. Бірақ,
принциптік айырмашылықтары да бар Бұлардың ішіндегі ең негізгісі ДИ-дің
программасын орнатуға мүмкіндігі жоқ айнымалылар, тұрақтылар және типтер
болып табылады. Себебі, Ди-ді жасаушылар программалау тілдерінің типсіз
түрін, ассамблерді қолдана алады. Нәтижеде, ДИ бүгінгі таңда программистер
үшін өте қажетті болып табылатын кластарды программаға экспорттай алмайды.
Бұл үшін тек пакеттер ғана қолданылады. Тағы бір негізгі айырмашылық болып
табылатыны – программаларының байланысу әдістері. Модульдер программамен
тек компоненттеу бөлімі арқылы байланысады. Егер бірдей модульді екі
программа іске қосылған болса, онда жадта бірдей прагменттегі кодтардың екі
данасы болады. Сонымен қатар ДИ программаға орындалу кезінде қосылады.
Егер тағы да екі программа бірдей кітапхана ДИ-ді қолданған болса, онда
программа арқыл кодтарды айырудың тек бір ғана данасы жадта сақталады. Бұл
компьютердің физикалық жады екендігін анықтауға тура келеді. Әрбір
программа өзінің орналасуына қарай белгілі бір орын алады да бұлар ДИ
кітапханаларының бейнесі ретінде көрінеді. Динамикалық қосылу ДИ-ге
модульдер арқылы мағынасы онша қажетті бола қймайтын мәліметтерді береді.
Олар: ДИ кітапханасының кез-келген өзгертулері қолданылып отырған
программаның міндетті түрде ауыспалы болуын талап етеді.
ДИ-ден процедуралар мен функцияларды импорттау
Borland Pascal With Object тілінде жазылған программалар мен модульдер ДИ-
ден процедуралар мен функцияларды үш тәсілмен импорттай алады.
1. Атауы бойынша
2. Жаңа Атауы бойынша
3. Ретті номері бойынша
Процедуралардың немесе функциялардың импорттаудағы фактілері оның
программаларына немесе модульдеріне сай келетін жазбаларында көрсетілген Ди-
ден импортталған процедуралар мен функциялар мына талаптарды
қанағаттандырулары тиіс.
• Міндетті түрде External процедуралық мәліметі қолданылуы
керек.
• ДИ-дің атауы External мәліметінен кейін көрсетіледі.
• Процедуралық far мәліметі арқылы немесе компилятордың {$ F
+} мәліметі арқылы орнатылған модель қолданылуы керек.
Атауы бойынша импорттау процедуралар немесе функциялар жазылуында
index және name мәліметтері бар болған жағдайда ғана өз атауларымен
импортталады.
Мысалы:
Бұл жазылымда MyProc процедурасы MYLIB динамикалы байланысқан
кітапханадан өз атауы бойынша, яғни MyProc деп импортталады.
Жаңа атауы бойынша импорттау.
Егер процедура немесе функция бөлімінде name мәліметі көрсетілген болса,
онда ол өз атауы бойынша емес name-ге көрсетілген атау бойынша
импортталады.
Мысалы:
Бұл жазылымда MyProc процедурасы MYLIB динамикалы байланысқан
кітапханадан өз атауы бойынша Яғни, MyProc бойынша емес, жаңа бір атау
NEWNAME бойынша импортталады. Бұл жаңа атау үшін кез-келген тұрақты шаманы
алуға болады.
Реттік номері бойынша импорттау
Егер процедура немесе функция бөлімінде index мәліметі көрсетілген болса,
онда ол өз атауы бойынша емес Іndex мәліметіне көрсетілгенмен импортталады.
Мұндай импорттау модульдік жүктелу уақытын азайтады.
Мысалы:
Бұл жазылымда MyProc процедурасы MYLIB динамикалы байланысқан
кітапханадан 7 индексі бойынша импортталады.
Статикалық жүктеу
type
TComplex = record
Re, Im : Real:
end:
function ADDC (x,y: TComplex): TComplex: stdcall: External “Cmp lx. dll” :
function Subc (x,y: TComplex): TComplex: stdcall: External “Cmp lx. dll”
:
function Mulc (x,y: TComplex): TComplex: stdcall: External “Cmp lx. dll”
:
function Divc (x,y: TComplex): TComplex: stdcall: External “Cmp lx. dll”
:
Procedure TfmExample. bbRunClick (Sender: TObject):
vai
x,y, z: TComplex
... ары қарай bbRunClick мәтінін қараша
Source (Chap - 02) Custom Variant Unit 1. Pas файлында
end:
end:
Cmplx ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz