Динамикалық кітапханалар

Автор работы: Пользователь скрыл имя, 06 Апреля 2014 в 10:25, курсовая работа

Описание работы

Бағдарламалау технологиясының дамуына байланысты көптеген адамдар өздерінің бағдарламаларының мүмкіндіктерін жоғарлату қателіктерімен соқтығысып жатады. Осы менің курстық жұмысым осы сұраққа арналған, яғни Borland Delphi тілінде DLL – ді бағдарламауға. Сонымен қоса, DLL кітапханаларын пайдалану туралы сұрақтарды қарастырғанда, біз басқа DLL – дан импорттауды да қарастырып кетеміз.

Файлы: 1 файл

курсовой исрп.doc

— 586.00 Кб (Скачать файл)

implementation

{$R *.dfm}

Function Average(A,B,C:real):real; far; external 'MYDLL' ;

procedure TForm1.Button1Click(Sender: TObject);

begin

Label1.Caption:=FloatToStr(Average(StrToFloat(Edit1.Text) ,

StrToFloat(Edit2.Text),StrToFloat(Edit3.Text)));

end;

DLL – мен байланыс орнатылған  жерге назар аударыңыз. Ол үшін implementation бөлімінде функцияны хабарлау енгізіледі. Ол компиляторға параметрлер түрлерін және функцияларды білуге көмектеседі. Хабарлағаннан кейін far шақыру түрі көрсетіледі және external (сыртқы) сөзінен кейін DLL кітапхана аты. Бұл кітапхана табылуы үшін, өзіңіздің мәтіндік қосымшаңызды кітапхана орналасқан каталогқа сақтаңыз. Қосымшаны жүктегеннен кейін DLL-мен байланыс жақсы жасап тұрғанына көзіңіз жетеді.

 

 

3.6-сурет.MyDLL DLL проектісі

 

 

3.7-сурет. MyDLL.dll кітапханасын Delphi – де шақыру үшін формада орналастырылған компоненттер

 

 

3.8-сурет. MyDLL.dll кітапханасын Delphi – де қолдану

 

 

4 – ЕСЕП

 

 

Бұл курстық жоба барысында динамикалық кітапханаларды құрып, оларды Delphi-де шақыруға тағы бір мысал қарастырып кетейік, бұл мысалда біз LoadLibrary() кітапханасы негізінде Total Commander – ді автоматты түрде шақырады және барлық қол жетімді функцияларды GetProcAddress(). Арқылы жүктейді.

Алдыңғы мысалда айтып өткендей DLL Wizard арқылы динамикалық кітапхана құру терезесін ашамыз. Бұл терезе ашылғаннан кейін жобаны баптау Project|Oprions менюін ашамыз. «Application» бетінен «Target file extension» деген жолға плагин файлы аты үшін «wcx» кеңейтпесін береміз. «Version Info» бетінен TC Plugins Manager утилитасы бетінен ақпараттарды қарау үшін Include version information in project –ке жалауша қоямыз. «Compiler» бетінен Code generation | Optimization жалаушасын алып тастаймыз да «Runtime errors» және «Debugging»жолдарының «Use Debug DCUs» басқаларының баріне жалауша қоямыз. Бұл Delphi жөндеушісін және Delphi-ден плагиндарды тексеру үшін қажет.

Run|Parameters жүктеу параметрлері менюін таңдаңыз. «Local» бетінен «Host Application» жолына totalcmd.exe –ге жол көрсетеміз.

Бұл мысалды орындап, компиляторға жібергеннен кейін бізге Total Commander файлдық менеджері ашылады.

 

library Project1;

uses

SysUtils,

Classes,

WCXHEAD in 'WCXHEAD.pas',

Main in 'Main.pas';

{$E wcx}

{$R *.res}

begin

end.

 

 

 

3.9-сурет. Project1.dll кітапханасының құрылған суреті

 

 

3.10-сурет. Project1.dll кітапханасын компиляторға жібергеннен кейінгі ашылатын терезе

 

5 – ЕСЕП

 

Жаңадан DLL проекті құрамыз. Бұл проектіге FirstDllProject деген ат береміз. Енді FirstDllProject.dpr проектісінің файлын ашамыз. Енді осы кітапханамызға Summ деген атпен бір функция енгіземіз. Бұл функцияның бүтін санды екі параметрі болады. А функция осы сандардың суммасын шығарып отырады. Келесі программа кодында осы Summ функциясын кітапханада құрылғаны көрсетілген:

library FirstDllProject;

uses

SysUtils,

Classes;

function Summ(X,Y:Integer):Integer; StdCall;

begin

Result:=X+Y;

end;

exports Summ;

{$R *.res}

begin

end.

Енді осы кітапханадағы функцияны қолданатын бағдарлама құрайық. Ол үшін жаңа проекті құрамыз. Формаға тек қана жалғыз Button компоненттін қоямыз.

FirstDllProject.DLL кітапханасын Delphi – де пайдаланғандағы бағдарлама  коды төмендегідей және төменде  осы бағдарламаның Delphi – де орындалған сұлбасы көрсетілген:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

function Summ(X,Y:Integer):Integer;StdCall;

implementation

function Summ; external 'FirstDllProject.DLL' name 'Summ';

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

r:Integer;

begin

r:=Summ(10,34);

Application.MessageBox(PChar(IntToStr(r)), 'Результат  функции Summ');

end;

end.

 

 

3.11-сурет. FirstDllProject.dll динамикалық кітапханасындағы функцияларды Delphi – да жүзеге асыру

 

ҚОРЫТЫНДЫ

 

Менің курстық жұмысымның тақырыбы  «Динамикалық модульге қосу және құру принциптері» болғандықтан, мен курстық жұмыста динамикалық кітапхана туралы жалпы түсінік бере кеттім. Динамикалық кітапханалар жайындағы жалпы түсінік берумен қатар, динамикалық кітапханаларды Delphi ортасында қалай құру керектігі туралы айтылып кетті.

Бұл курстық жұмысым үш бөлімнен тұрады. Екі бөлім теория болады да бір бөлім тәжірибелік бөлім болып келеді.

Теориялық бөлімде Delphi ортасындағы DLL –ді бағдарламалаудың көптеген қасиеттері жайында айтылып та кетті. DLL проектісі және интерфейстік модуль жайында да, сонымен қоса жалпы модульдер жайында бірінші бөлімде қарастырылып кетті.

Тәжірибелік бөлімнің мазмұны туралы айтатын болсақ, тәжірибелік бөлімде бес программа мысалы көрсетілген. Бұл бес бағдарлама қосымшаларда көрсетілген.

Динамикалық кітапхана жайында курстық жұмыс барысында толық түсіндірдім. Динамикалық кітапханаға қорытынды бере кететін болсақ, алдымен біз динамикалық кітахананың қандай аймақтарда қолданылатыны айта кеттім.

Динамикалық кітапханалардың жалпылама қолданылатын жерлерін жалпылама айта кеттім, енді динамикалық кітапхана туралы курстық жұмыс барысында айта кеттім. Сонымен қоса, бұл жұмыста Borland Delphi программалау ортасында DLL құру жайында және құрылған динамикалық кітапханаларды құрған мысалдарын көрсетіп кетім.

Динамикалық кітапхана модулдері Windows - те кең қолданылатын бір бірімен динамикалық байланысқан DLL (Dynamic-Link Libraries) кітапханаларды құруға арналған. DLL-дер туралы алда тағыда қарастырып кетім.

 

 

 

ПАЙДАЛАНҒАН ӘДЕБИЕТТЕР ТІЗІМІ

 

 

  1. А.Я.Архангельский «Программирование в Delphi7», Издательство «Бином»,2008 г
  2. М.Фленов «Основы среды разработки Delphi 7», Издательство «Бином»,2008 г
  3. www.frenov.com
  4. Дарахвелидзе П.Г., Марков Е.П.  Delphi – среда визуального программирования. – СПб.: BNV, 1996, - 352с.
  5. Орлик С.В. Секреты Delphi  на примерах. – М.:Бином, 2001, - 316с.
  6. Культин Н. Delphi в задачах и примерах.-СПб.:БХВ-Петербург,2003
  7. Фаронов В. Delphi 6:Учебный курс.-СПб. Питер,2002
  8. ИвановГ.С. Ничищкина Т.Н.,Пугачев Е.К.Объектно оринтерованное программирование.-М.:Издательство МГТУ имени Н.Э.Баумана,2003
  9. Марко Кэнту.Для профессионалов  Delphi 7.-Питер,2005
  10. www.google.ru
  11. В.Бобровский «Delphi 5» Питер 2001
  12. И.Ю.Баженова «Delphi 5 Самоучитель программиста» Кудиц-Образ
  13. Фаронов В. Профессиональная работа в Delphi 6. Библиотека программиста. – СПб.: Питер, 2002
  14. Гофман В.Э., Хомоненко А.Д. Delphi 6. – СПб.: БХВ-Петербург, 2002. – 1152 с
  15. Архангельсий А.Я. Delphi 7.Справочное пособие.-М.:Бином,2004
  16. Балғабаева Л.Ш. Мәліметтер және білім базасы. – Алматы: КазТУ, 2000, 200б.
  17. Абдуллина В.З., Балапанов Е.К., Бөрібаев Е. Access жүйесімен жұмыс істеу, лабораториялық практикум. Оқу құралы. – Алматы: КазНТУ, 2004, 180б.
  18. Саймон А. Стратегические технологии баз данных: менеджмент на 2000 г. –М.: Финансы и статистика, 1999, с. 550.
  19. Шумаков П. В., "Delphi и создание баз данных. – М.2000
  20. Гэри Неббет Справочник по базовым функциям API Windows NT/2000 = Windows NT/2000 Native API Reference. — М.: «Вильямс», 2002. — С. 528. — ISBN 1-57870-199-6

 

 


 

 



Информация о работе Динамикалық кітапханалар