دلفي تعليم
مرحبا بكم ايها الزئر أو الزائرة الكريمين

انشاء ملف Dll باللغة دلفي واستدعائه باللغة Visual Basic

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

انشاء ملف Dll باللغة دلفي واستدعائه باللغة Visual Basic

مُساهمة  alla في 25/7/2016, 4:32 pm



انشاء ملف Dll باللغة دلفي واستدعائه باللغة Visual Basic

طريقة انشاء ملف Dll باللغة دلفي وطريقة استدعائه باللغة Visual Basic كل الاصدارات

بسم الله الرحمن الرحيم
الصلاة والسلام على رسول الله وعلى آلـــه وأصحابه أجمعين

البرنامج هو يقوم بعمليات الجمع والطرح الضرب والقسمة
وباقي القسمةو القسمة بدون فاسلة في اجاء واحد وطبع داخله الدوال المذكورة آنفا

ويقوم أيضا بارسال قمتين و ارجاع القيمة الصغرى في لافتة لابك والقيمة الكبرى في مسج مربع رسالة

انشاء مشروع جديد فجوال بيزك واحفظ المشروع باسم
ثم انشاء موديل في المشروع فجوال بيزك باسم

Nom de fichier: Module1.vb
File Name: Module1.vb
اسم الملف : Module1.vb

-----------------delph.forumalgerie.net
اكتب هذه في الموديل

الرمز:


Module Module1
'delph.forumalgerie.net

    ' save in c:\AppelDll\Project_Dll.dll
'delph.forumalgerie.net
    Public Declare Sub ProcGlobale Lib "c:\AppelDll\Project_Dll.dll" (ByVal x1 As Integer, ByVal y1 As Integer, _
ByVal x2 As Double, ByVal y2 As Double, ByRef retDivEn As Integer, ByRef retMod As Integer, _
ByRef retMulti As Double, ByRef retDiv As Double, ByRef retAdd As Double, ByRef retSous As Double)
    Public Declare Sub GlobMaxMin Lib "E:\del01\vb_dotnet\AppelDll\Project_Dll.dll" (ByVal x As Integer, ByVal y As Integer, ByRef GMin As Integer, ByRef GMax As Integer)
'delph.forumalgerie.net
End Module


========================'delph.forumalgerie.net

ضع فوق الفورم 4 لافتات من نوع TLabel اي Label1 و Label2 و Label3 و Label4
وضع فوق الفورم 2 ازرار من نوع TButton أي Button1 و Button2
وضع فوق الفورم 6 ازرار اختيار واحد من مجموعة من نوع RadioButton أي RadioButton1 و RadioButton2
و RadioButton3 و RadioButton4 و RadioButton5 و RadioButton6
وضع فوق الفورم 3 ربع نص من نوع TextBox أي TextBox1 و TextBox2 و TextBox3


اضغط مرتين فوق Button1
اكتب هذا الامر في حدث نقر

' delph.forumalgerie.net

الرمز:


Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' بداية الكتابة
 '  delph.forumalgerie.net
        Dim variaMin1 As Integer ' delph.forumalgerie.net '  delph.forumalgerie.net
        Dim variaMax1 As Integer ' delph.forumalgerie.net '  delph.forumalgerie.net
        Dim vars1 As Integer ' delph.forumalgerie.net '  delph.forumalgerie.net
        Dim vars2 As Integer ' delph.forumalgerie.net '  delph.forumalgerie.net
 ' delph.forumalgerie.net '  delph.forumalgerie.net
        vars1 = Val(TextBox1.Text) ' delph.forumalgerie.net '  delph.forumalgerie.net
        vars2 = Val(TextBox2.Text) ' delph.forumalgerie.net '  delph.forumalgerie.net
 ' delph.forumalgerie.net '  delph.forumalgerie.net
        Call GlobMaxMin(vars1, vars2, variaMin1, variaMax1) ' delph.forumalgerie.net '  delph.forumalgerie.net
        Label1.Text = "Petit valeur : " + Str(variaMin1) ' delph.forumalgerie.net '  delph.forumalgerie.net
        MsgBox("Grand valeur : " + Str(variaMax1)) ' delph.forumalgerie.net '  delph.forumalgerie.net
 ' delph.forumalgerie.net '  delph.forumalgerie.net
    End Sub ' delph.forumalgerie.net '  delph.forumalgerie.net
 '  delph.forumalgerie.net
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click '  delph.forumalgerie.net
 ' delph.forumalgerie.net '  delph.forumalgerie.net
        Dim AVariableAi As Integer ' delph.forumalgerie.net '  delph.forumalgerie.net
        Dim BVariableBi As Integer ' delph.forumalgerie.net '  delph.forumalgerie.net
        Dim AVariableAr As Double ' delph.forumalgerie.net '  delph.forumalgerie.net
        Dim BVariableBr As Double ' delph.forumalgerie.net '  delph.forumalgerie.net
 ' delph.forumalgerie.net '  delph.forumalgerie.net
        Dim foncAdd As Double ' delph.forumalgerie.net '  delph.forumalgerie.net
        Dim foncSous As Double ' delph.forumalgerie.net '  delph.forumalgerie.net
        Dim foncMulti As Doublev '  delph.forumalgerie.net
        Dim foncDiv As Double '  delph.forumalgerie.net
        Dim foncDivEn As Integer '  delph.forumalgerie.net
        Dim foncMod As Integer '  delph.forumalgerie.net
 '  delph.forumalgerie.net
        AVariableAi = TextBox1.Text '  delph.forumalgerie.net
        BVariableBi = TextBox2.Text '  delph.forumalgerie.net
        AVariableAr = TextBox1.Text '  delph.forumalgerie.net
        BVariableBr = TextBox2.Text '  delph.forumalgerie.net
 '  delph.forumalgerie.net
        ProcGlobale(AVariableAi, BVariableBi, AVariableAr, BVariableBr, foncDivEn, foncMod, foncMulti, foncDiv, foncAdd, foncSous) '  delph.forumalgerie.net
 '  delph.forumalgerie.net
        If RadioButton1.Checked Then '  delph.forumalgerie.net
            TextBox3.Text = Str(foncAdd) ' Addition '  delph.forumalgerie.net
        ElseIf RadioButton2.Checked Then '  delph.forumalgerie.net
            TextBox3.Text = Str(foncSous)  ' Soustraction '  delph.forumalgerie.net
        ElseIf RadioButton3.Checked Then '  delph.forumalgerie.net
            TextBox3.Text = Str(foncMulti)  ' Multiplication '  delph.forumalgerie.net
        ElseIf RadioButton4.Checked Then '  delph.forumalgerie.net
            TextBox3.Text = Str(foncDiv) ' Division '  delph.forumalgerie.net
        ElseIf RadioButton5.Checked Then '  delph.forumalgerie.net
            TextBox3.Text = Str(foncDivEn) ' Division Entiere '  delph.forumalgerie.net
        ElseIf RadioButton6.Checked Then '  delph.forumalgerie.net
            TextBox3.Text = Str(foncMod) ' Modulo '  delph.forumalgerie.net
        End If '  delph.forumalgerie.net

'  delph.forumalgerie.net
' نهاية الكتابة
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' بداية الكتابة

 '  delph.forumalgerie.net
        RadioButton1.Text = "Addition" '  delph.forumalgerie.net
        RadioButton2.Text = "Soustaction" '  delph.forumalgerie.net
        RadioButton3.Text = "Multiplication" '  delph.forumalgerie.net
        RadioButton4.Text = "Division" '  delph.forumalgerie.net
        RadioButton5.Text = "Division Entiere" '  delph.forumalgerie.net
        RadioButton6.Text = "Modulo" '  delph.forumalgerie.net
        RadioButton1.Checked = True '  delph.forumalgerie.net
        GroupBox1.Text = "Operation" '  delph.forumalgerie.net
        Label2.Text = "Valeur premier" '  delph.forumalgerie.net
        Label3.Text = "Valeur deuxieme" '  delph.forumalgerie.net
        Label4.Text = "Resut" '  delph.forumalgerie.net
        TextBox1.ReadOnly = False '  delph.forumalgerie.net
        TextBox2.ReadOnly = False '  delph.forumalgerie.net
        TextBox3.ReadOnly = True '  delph.forumalgerie.net
'  delph.forumalgerie.net

' نهاية الكتابة
    End Sub
End Class



اضغط مرتين فوق Button2
اكتب هذا الامر في حدث نقر

الرمز:

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' بداية الكتابة
        Dim variaMin1 As Integer '  delph.forumalgerie.net
        Dim variaMax1 As Integer '  delph.forumalgerie.net
        Dim vars1 As Integer '  delph.forumalgerie.net
        Dim vars2 As Integer '  delph.forumalgerie.net
 '  delph.forumalgerie.net
        vars1 = Val(TextBox1.Text) '  delph.forumalgerie.net
        vars2 = Val(TextBox2.Text) '  delph.forumalgerie.net
 '  delph.forumalgerie.net
        Call GlobMaxMin(vars1, vars2, variaMin1, variaMax1) '  delph.forumalgerie.net
        Label1.Text = "Petit valeur : " + Str(variaMin1) '  delph.forumalgerie.net
        MsgBox("Grand valeur : " + Str(variaMax1)) '  delph.forumalgerie.net


' نهاية الكتابة
    End Sub

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


Operator :

+,-,*,\,/,^, &,
Like, Mod,
And, Or, Xor, Not,


===========================================

انشئ مشروع دي أل أل Dll باللغة دلفي واحفظ المشروع باسم

Nom de fichier: Project_Dll.dpr
File Name: Project_Dll.dpr
اسم الملف : Project_Dll.dpr

الرمز:
// delph.forumalgerie.net

library Project_Dll;// delph.forumalgerie.net
// delph.forumalgerie.net
uses// delph.forumalgerie.net
  SysUtils,// delph.forumalgerie.net
  Classes;// delph.forumalgerie.net
// delph.forumalgerie.net
{$R *.res}// delph.forumalgerie.net
// delph.forumalgerie.net
procedure ProcGlobale(x1,y1: Integer; x2,y2: Real;// delph.forumalgerie.net
var retDivEn, retMod: Integer;// delph.forumalgerie.net
var retMulti, retDiv, retAdd, retSous: Real); stdcall;// delph.forumalgerie.net
// delph.forumalgerie.net
function Addition(x,y: Real): Real;// delph.forumalgerie.net
begin// delph.forumalgerie.net
 Result := x + y;// delph.forumalgerie.net
end;// delph.forumalgerie.net
// delph.forumalgerie.net
function Soustaction(x,y: Real): Real;// delph.forumalgerie.net
begin// delph.forumalgerie.net
 Result := x - y;// delph.forumalgerie.net
end;// delph.forumalgerie.net
// delph.forumalgerie.net
function Multiplication(x,y: Real): Real;// delph.forumalgerie.net
begin// delph.forumalgerie.net
 Result := x * y;// delph.forumalgerie.net
end;// delph.forumalgerie.net
// delph.forumalgerie.net
function DivitionEntiere(x,y: Integer): Integer;// delph.forumalgerie.net
begin// delph.forumalgerie.net
 Result := x div y;// delph.forumalgerie.net
end;// delph.forumalgerie.net
// delph.forumalgerie.net
function Modulo(x,y: Integer): Integer;// delph.forumalgerie.net
begin// delph.forumalgerie.net
 Result := x mod y;// delph.forumalgerie.net
end;// delph.forumalgerie.net
// delph.forumalgerie.net
function Divition(x,y: Real): Real;// delph.forumalgerie.net
begin// delph.forumalgerie.net
 Result := x / y;// delph.forumalgerie.net
end;// delph.forumalgerie.net
// delph.forumalgerie.net
begin// delph.forumalgerie.net
// delph.forumalgerie.net
// delph.forumalgerie.net
 retAdd := Addition(x1,y1);// delph.forumalgerie.net
 retSous := Soustaction(x1,y1);// delph.forumalgerie.net
// delph.forumalgerie.net
 retDivEn := DivitionEntiere(x1,y1);// delph.forumalgerie.net
 retMod := Modulo(x1,y1);// delph.forumalgerie.net
// delph.forumalgerie.net
 retMulti := Multiplication(x2,y2);// delph.forumalgerie.net
 retDiv := Divition(x2,y2);// delph.forumalgerie.net
// delph.forumalgerie.net
end;// delph.forumalgerie.net
// delph.forumalgerie.net
procedure GlobMaxMin(x,y: integer; var GMin,GMax: Integer);stdcall;// delph.forumalgerie.net
function FuncMin(x7,y7: integer): Integer;// delph.forumalgerie.net
begin// delph.forumalgerie.net
 if x < y then Result := x// delph.forumalgerie.net
  else Result := y;// delph.forumalgerie.net
end;// delph.forumalgerie.net
// delph.forumalgerie.net
function FuncMax(x7,y7: integer): Integer;// delph.forumalgerie.net
begin// delph.forumalgerie.net
 if x > y then Result := x// delph.forumalgerie.net
  else Result := y;// delph.forumalgerie.net
end;// delph.forumalgerie.net
// delph.forumalgerie.net
begin// delph.forumalgerie.net
 GMin := FuncMin(x,y);// delph.forumalgerie.net
 GMax := FuncMax(x,y);// delph.forumalgerie.net
end;// delph.forumalgerie.net
// delph.forumalgerie.net
 exports  GlobMaxMin, ProcGlobale;// delph.forumalgerie.net
// delph.forumalgerie.net
begin// delph.forumalgerie.net
end.// delph.forumalgerie.net




مشكورين على الزيارة

منتدى دلفي تعليم يرحب بزواره الكرام ويتمنى لهم زيارة موفقة
delph.forumalgerie.net


==============================================delph.forumalgerie.net

طريقة استدعاء بدلفي

الرمز:
// delph.forumalgerie.net

// delph.forumalgerie.net
unit Unitapell;// delph.forumalgerie.net
// delph.forumalgerie.net
interface// delph.forumalgerie.net
// delph.forumalgerie.net
uses// delph.forumalgerie.net
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,// delph.forumalgerie.net
  Dialogs, StdCtrls, ExtCtrls, Buttons;// delph.forumalgerie.net
// delph.forumalgerie.net
type// delph.forumalgerie.net
  TForm1 = class(TForm)// delph.forumalgerie.net
    Label1: TLabel;// delph.forumalgerie.net
    Button2: TButton;// delph.forumalgerie.net
    RadioGroup1: TRadioGroup;// delph.forumalgerie.net
    Panel1: TPanel;// delph.forumalgerie.net
    Label3: TLabel;// delph.forumalgerie.net
    Label4: TLabel;// delph.forumalgerie.net
    Label2: TLabel;// delph.forumalgerie.net
    Button1: TButton;// delph.forumalgerie.net
    Edit1: TEdit;// delph.forumalgerie.net
    Edit2: TEdit;// delph.forumalgerie.net
    Edit3: TEdit;// delph.forumalgerie.net
    BitBtn1: TBitBtn;// delph.forumalgerie.net
    procedure Button2Click(Sender: TObject);// delph.forumalgerie.net
    procedure Button1Click(Sender: TObject);// delph.forumalgerie.net
    procedure FormCreate(Sender: TObject);// delph.forumalgerie.net
  private// delph.forumalgerie.net
  foncMin,foncMax,foncDivEn,foncMod: Integer;// delph.forumalgerie.net
  foncAdd,foncSous,foncMulti,foncDiv: Real;// delph.forumalgerie.net
  public// delph.forumalgerie.net
  end;// delph.forumalgerie.net
// delph.forumalgerie.net
const Pro_Dll = 'Project_Dll.dll';// delph.forumalgerie.net
// delph.forumalgerie.net
var// delph.forumalgerie.net
  Form1: TForm1;// delph.forumalgerie.net
  intA, intB: Integer;// delph.forumalgerie.net
  reaA, reaB: Real;// delph.forumalgerie.net
// delph.forumalgerie.net
 procedure GlobMaxMin(x,y: integer; var GMin,GMax: Integer);stdcall;// delph.forumalgerie.net
 external Pro_Dll;// delph.forumalgerie.net
 procedure ProcGlobale(x1,y1: Integer; x2,y2: Real;// delph.forumalgerie.net
 var retDivEn, retMod: Integer;// delph.forumalgerie.net
 var retMulti, retDiv, retAdd, retSous: Real); stdcall;// delph.forumalgerie.net
 external Pro_Dll;// delph.forumalgerie.net
// delph.forumalgerie.net
implementation// delph.forumalgerie.net
// delph.forumalgerie.net
{$R *.dfm}// delph.forumalgerie.net
// delph.forumalgerie.net
procedure TForm1.Button2Click(Sender: TObject);// delph.forumalgerie.net
begin// delph.forumalgerie.net
 intA := StrToInt(Edit1.Text);// delph.forumalgerie.net
 intB := StrToInt(Edit2.Text);// delph.forumalgerie.net
 GlobMaxMin(intA,intB,foncMin,foncMax);// delph.forumalgerie.net
 Label1.Caption := floatToStr(foncMin);// delph.forumalgerie.net
 ShowMessage(IntToStr(foncMax));// delph.forumalgerie.net
end;// delph.forumalgerie.net
// delph.forumalgerie.net
procedure TForm1.Button1Click(Sender: TObject);// delph.forumalgerie.net
begin// delph.forumalgerie.net
 reaA := StrToInt(Edit1.Text);// delph.forumalgerie.net
 reaB := StrToInt(Edit2.Text);// delph.forumalgerie.net
 intA := StrToInt(Edit1.Text);// delph.forumalgerie.net
 intB := StrToInt(Edit2.Text);// delph.forumalgerie.net
 ProcGlobale(intA,intB, reaA,reaB,// delph.forumalgerie.net
 foncDivEn,foncMod,foncMulti,foncDiv,foncAdd,foncSous);// delph.forumalgerie.net
 case RadioGroup1.ItemIndex of// delph.forumalgerie.net
      0:Edit3.Text := FloatToStr(foncAdd);// delph.forumalgerie.net
      1:Edit3.Text := FloatToStr(foncSous);// delph.forumalgerie.net
      2:Edit3.Text := FloatToStr(foncMulti);// delph.forumalgerie.net
      3:Edit3.Text := FloatToStr(foncDiv);// delph.forumalgerie.net
      4:Edit3.Text := FloatToStr(foncDivEn);// delph.forumalgerie.net
      5:Edit3.Text := FloatToStr(foncMod);// delph.forumalgerie.net
 end;// delph.forumalgerie.net
end;// delph.forumalgerie.net
// delph.forumalgerie.net
procedure TForm1.FormCreate(Sender: TObject);// delph.forumalgerie.net
begin// delph.forumalgerie.net
 RadioGroup1.Items.Add('Addition');// delph.forumalgerie.net
 RadioGroup1.Items.Add('Soustaction');// delph.forumalgerie.net
 RadioGroup1.Items.Add('Multiplication');// delph.forumalgerie.net
 RadioGroup1.Items.Add('Divition');// delph.forumalgerie.net
 RadioGroup1.Items.Add('Divition Entiere');// delph.forumalgerie.net
 RadioGroup1.Items.Add('Modulo');// delph.forumalgerie.net
 RadioGroup1.ItemIndex := 0;// delph.forumalgerie.net
end;// delph.forumalgerie.net
// delph.forumalgerie.net
end.// delph.forumalgerie.net




منتدى دلفي تعليم يرحب بزواره الكرام ويتمنى لهم زيارة موفقة
delph.forumalgerie.net

_________________
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

alla
مبرمج مجتهد

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

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

رد: انشاء ملف Dll باللغة دلفي واستدعائه باللغة Visual Basic

مُساهمة  abas في 21/12/2016, 10:10 am

بارك الله فيك

abas
مبرمج

عدد المساهمات : 55
تاريخ التسجيل : 06/06/2015

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

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


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