دلفي تعليم
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

انشاء ملف دي ال ال dll واستدعائه

اذهب الى الأسفل

انشاء ملف دي ال ال  dll واستدعائه Empty انشاء ملف دي ال ال dll واستدعائه

مُساهمة  ali 27/3/2017, 9:33 pm


بسم الله الرحمن الرحيم
الصلاة السلام على رسول الله

انشاء ملف دي ال ال dll واستدعائه

كيفية انشاء ملف DLL بـــ Delphi
واستدعائه بــــبرنامج دلفي Delphi


fichier -> nouveau -> export dll -> ok

ملف دي ال ال

Liprary مكتبة


الكود:

library TestDll;

uses
  SysUtils, Classes;

{$R *.res}

function TestMax(i, j: Integer):Integer;  stdcall;
begin
 if i > j then Result := i
  else  Result := j;
end;

function TestMin(i, j: Integer):Integer;  stdcall;
begin
 if i < j then Result := i
  else  Result := j;
end;

exports 
  TestMax name 'Maxs',
      TestMin name 'Mins';
     
begin
end.




انشاء مشروع جديد
fichier -> nouveau -> application -> ok

ضع فوق الفورم
اثنان TEdit و اربعة TLabel و اثنان TButton

الكود:


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Button2: TButton;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private public
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

type
  TestMax1 = function(TM1, TM2: integer): integer; stdcall;
  TestMin1 = function(TM1, TM2: integer): integer; stdcall;
  THandle = Integer;

procedure TForm1.Button1Click(Sender: TObject);
const
 // اسم ملف dll
 //  أو المكتبة
 NomDll = 'TestDll.dll';
 
var
    hDll: THandle;
    Max1: TestMax1;
    Min1: TestMin1;
    i, j: Integer;

begin
 //  تحميل ملف أو مكتبة dll
 hDll := LoadLibrary(PChar(NomDll));
 if hDll <> 0 then
 begin
 // الاتصال بالدالة التي تخرج العدد الاكبر
  @Max1 := GetProcAddress(hDll,'Maxs');
 // تجلب  العدد الاصغر من ملف دي ال ال
  @Min1 := GetProcAddress(hDll,'Mins');
 // ارسال القيم الى الدالتين
  i := Max1(strtoint(Edit1.Text),strtoint(Edit2.Text));
  j := Min1(strtoint(Edit1.Text),strtoint(Edit2.Text));
  // عرض النتيجة
  Label1.Caption := 'Plus grand entier : '+inttostr(i);
  Label2.Caption := 'Plus petit entier : '+inttostr(j);
  // تحرير الذاكرة من المتغير
  FreeLibrary(hDll);
 end else
  ShowMessage(' خطأ في تحميل ملف دي ال ال');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 close;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 if MessageDlg('Voulez-vous vraiment fermer l''application ?',
    mtWarning, [mbYes,mbNo],0)=mrYes then
    Action :=caFree
  else
  Action :=caNone;
end;

end.


ali
مبرمج مجتهد

عدد المساهمات : 913
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

انشاء ملف دي ال ال  dll واستدعائه Empty رد: انشاء ملف دي ال ال dll واستدعائه

مُساهمة  ali 27/3/2017, 10:45 pm

المرفق على الرابط
sites.google.com/site/site111dz/delphi/creatdllandcall

ali
مبرمج مجتهد

عدد المساهمات : 913
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى