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

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

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

 

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

اذهب الى الأسفل 
كاتب الموضوعرسالة
طيباوي




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

 كيفية انشاء ملف DLL بـــ Delphi واستدعائه بــــبرنامج دلفي Delphi  Empty
مُساهمةموضوع: كيفية انشاء ملف DLL بـــ Delphi واستدعائه بــــبرنامج دلفي Delphi     كيفية انشاء ملف DLL بـــ Delphi واستدعائه بــــبرنامج دلفي Delphi  Icon_minitimeالإثنين أكتوبر 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
 مواضيع مماثلة
-
» كيفية انشاء ملف DLL واستدعائه بدلفي
» كيفية انشاء قاعدة بيانات في دلفي
» كيفية انشاء أليا alias أو اسم مستعار
» كيفية تغيير التاريخ والوقت بواسطة برنامج -delphi-
» كيفية تثبيت دلفي

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