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

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

2 مشترك

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

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

مُساهمة  ali 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

ali
مبرمج مجتهد

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

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

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

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

بارك الله فيك

abas
مبرمج

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

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

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

- مواضيع مماثلة

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