Jump to content
Forum Windows-az.com

DLL Yaratmaq


AliZairov

Recommended Posts

Proqramlar telegramda

Saytdakı 4CD-lik türkçə dərslik var. 3CD-də var. DLL yaratmaq və onlarla işləmək. Deməli orda əsas budur.

 

1-ci deyirki, DLL yarat sonra Project/Add to project daxil ol və Unit seç. Unit bilməyənlər unit yəni siz yeni proyekt açırsınız Delphi-də onun kodlarının yerləşdiyi fayldı. Standart olaraq Unit1.pas yaradır. Amma istəyən adını dəyişə bilər. Ordan tutaq uAbout.pas adında haqqında formu yaradmısınız. Onun Kodlarını DLL proyektinə əlavə edin deyir. Sonra DLL proyektində bu ardıcılığda kodlar olur.

 

library Project1;

 

{ Important note about DLL memory management: ShareMem must be the

first unit in your library's USES clause AND your project's (select

Project-View Source) USES clause if your DLL exports any procedures or

functions that pass strings as parameters or function results. This

applies to all strings passed to and from your DLL--even those that

are nested in records and classes. ShareMem is the interface unit to

the BORLNDMM.DLL shared memory manager, which must be deployed along

with your DLL. To avoid using BORLNDMM.DLL, pass string information

using PChar or ShortString parameters. }

 

uses

SysUtils,

Classes,

Forms,

uAbout in 'uAbout.pas' {About}; // Uniti əlavə edəndə bura unvanı yazır

 

{$R *.res}

 

exports

About; // Unit-dəki Formun adı yazılmalıdır

 

begin

end.

 

 

 

2-ci isə uAbout.pas unit-inə bu kodları yazın.

 

var

about: TAbout;

 

altına bu kodu

 

procedure About; export;

 

 

{$R *.dfm}

 

altına bu kodu

 

procedure About; export;

begin

Application.CreateForm(TAbout, About);

try

About.ShowModal;

finally

FreeAndNil(About);

end;

end;

 

Run etdiktə nədənsə səhv verir.

 

Normal proyektdən hazırladığımız .dll açmaq üçün bu kodu button-a əlavə etməlyik.

 

procedure TMain.Button1Click(Sender: TObject);

var

DLLHandle: Thandle;

Main: procedure;

begin

DLLHandle := LoadLibrary('about.dll'); // Dll adı yazılmalıdır

if DLLHandle <> 0 then

try

Main := GetProcAddress(DllHandle, 'Main');

Main;

finally

FreeLibrary(DLLHandle);

end;

end;

 

Bu qədər. Problemi tapan olsa bizimlə paylaşsın.

 

 

 

Link to comment
Share on other sites

Men bir az arasdirma etdim ve daha asandini tapdim.ama sen dediyine benzer bir seydi.

DLL fayli ile toplama emeliyyati aparmaq.Delphi XE ile hazirlanir.sabah derslik ahzirlayib yerlesdirerem

- Laptop ve Desktop Anakartlarin temiri

- BIOS yazilmasi

- Sifreli SuperUser BIOS-larin silinmesi

- Kicik chiplerin deyisidrilmesi

- BGA Chiplerin deyisdirilmesi (GPU/CPU/FCH/PCH/HM ve s)

Link to comment
Share on other sites

men XE isledirem helelki.yeni yuklemsiem aktiv.Senin istediyin dll bir az ferqlidir.yenede baxaram.eger nese alinsa sene deyerem.

- Laptop ve Desktop Anakartlarin temiri

- BIOS yazilmasi

- Sifreli SuperUser BIOS-larin silinmesi

- Kicik chiplerin deyisidrilmesi

- BGA Chiplerin deyisdirilmesi (GPU/CPU/FCH/PCH/HM ve s)

Link to comment
Share on other sites

Sohbete katıl

Şimdi mesajını gönderebilir ve daha sonra kayıt olabilirsin. Bir hesabın varsa, hesabınla göndermek için şimdi oturum aç.

Misafir
Bu konuya yanıt ver...

×   Zengin metin olarak yapıştırıldı.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Önceki içeriğiniz geri yüklendi.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • loading...
×
×
  • Create New...