منتدى متعدد المهام

منتدى متعدد المهام في عدة مجالات
 
الرئيسية  البوابةالبوابة  التسجيلالتسجيل  دخولدخول  

شاطر | 
 

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

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
ben taib allaa



عدد المساهمات : 64
نقاط : 182
تاريخ التسجيل : 28/04/2015
الموقع : http://delph.forumalgerie.net

مُساهمةموضوع: كيفية انشاء ملف DLL بـــ Delphi واستدعائه بــــبرنامج دلفي Delphi    الإثنين أكتوبر 31, 2016 2:27 pm

الكود:

library Project1;

uses SysUtils, Classes;

{$R *.res}

function Addition(a1,b1: integer): integer;
begin
  Addition := a1+b1;
end;
 exports  Addition;

begin
end.

---------------------------------------------------------
دلفي تعليم
http://delph.forumalgerie.net

DLL

واستدعائه بدلفي

بسم الله الرحمن الرحيم

و الصلاة و السلام على رســـول الله

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

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

------------------------

الكود:

unit Unit01;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;
 function Addition(a1,b1: integer): integer; stdcall;
 external 'TestDLL1.dll';

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 x, y: integer;
 j: integer;

begin
 x := StrToInt(Edit1.Text);
 y := StrToInt(Edit2.Text);
 j := Addition(x, y);
 Label1.Caption := IntToStr(j);

end;

end.
----------------------------------
procedure Button1Click(Sender: TObject);

في السطر الاول تم تصريح باجراء النقر هو من نوع كائن وتتم كتابته تلقائيا

private { Déclarations privées }

منطقة لتصريح المخصص أي تصريح لبعض المتغييرات أو الاجراءات

public { Déclarations publiques }

منطقة لتصريح العام أي تصريح بعض المتغييرات أو الاجراءات

function Addition(a1,b1: integer): integer; stdcall; external 'TestDLL1.dll';

تصريح بالدالة المستعملة في البرنامج

implementation {$R *.dfm}

نهاية منطقة التصريح وبداية منطقة كتابة الاوامر أي جسم البرنامج

procedure TForm1.Button1Click(Sender: TObject);

بداية اجراء النقر

var
x, y: integer;
j: integer;

تصريح بثلاثة متغييرات من نوع صحيح داخل الاجراء

begin

بداية جسم الاجراء

x := StrToInt(Edit1.Text);

اسناد القيمة المدخلة في مربع النص الى المتغيير صحيح وذلك بعد تحويلها من سلسلة حرفية الى عدد صحيح

y := StrToInt(Edit2.Text);

عملية اسناد كسابقه أي نفس شيء

Label1.Caption := IntToStr(j);

اسناد قيمة المتغيير الى لافتة كابشن لابل الاول وذلك بعد عملية التحويل من متغيير الى سلسلة حرفية

end;
end.

نهاية الاجراء ونهاية البرناج في نفس الوقت

...

fichier -> nouveau -> export dll -> ok

ملف دي ال ال

Liprary مكتبة

stdcall;

-----------------------------
الكود:

library TestDLL1;

uses SysUtils, Classes;

{$R *.res}

function Addition(a1,b1: integer): integer; stdcall;
begin
  Addition := a1+b1;
end;
 exports  Addition;

begin
end.
-----------------
سأحاول شرح هذه الاوامر

Liprary TestDLL1;

المكتبة وهذه المكتبة لها اسم معين

begin

البداية

tesult := a1+b1;

اسناد نتيحة عملية الجمع الى الدالة أو الى اسم الدالة

exports Addition;

تصدير الدالة الى خارج المكتبة من أجل استعمالها في برامج أخرى

end.

النهاية

نستطيع كتابة دالة أو اثنان أو أكثر أو حتي اجراءات متعددة

في حالة تعدد الاجراءات والدوال
الكود:

function addition(a1,b1: integer): integer; stdcall;
begin

result := a1+b1;

end;
الكود:

function soustraction(x:integer; y: integer): integer;

result := x-y;

end;
الكود:

procedure max(k: integer; j: integer; var m: integer)

begin

if k > j then m:=k else m:=j;

end;
هذه طريقة تصدير الى البرامج المستدعية أي التي تستدعي هذه الدوال والاجراءات ونفصل بينها فاصلة

exports addition, soustraction, max;

ساشرح في موضوع آخر طريقة الارسال باسم او مؤشر name - index





.
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://delph.forumalgerie.net
 
كيفية انشاء ملف DLL بـــ Delphi واستدعائه بــــبرنامج دلفي Delphi
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى متعدد المهام :: منتديات عالم الحواسيب الشخصية :: تعلم البرمجة باللغة الدلفي-
انتقل الى: