نحوه ایجاد و استفاده از DLL در سی شارپ

ایجاد کتابخانه کلاس (Class Library) در Visual Studio .NET بسیار راحت و آسان است. در این آموزش یاد می گیرید چگونه یک DLL را ایجاد کنید و چگونه در پروژه های خود در آن استفاده کنید .

 

مراحل ایجاد DLL

به صورت زیر یک پروژه Class Library ایجاد کرده و نام ان را CreateDLL بگذارید :
create-and-use-dll-in-csharp-01
بعد از کلیک روی OK، در قسمت solution explorer یک کلاس به نام Class1.cs را مشاهده خواهید کرد، که ما می خواهیم کدهای DLL خود را درون آن بنویسیم :
create-and-use-dll-in-csharp-02
زمانی که روی Class1.cs دوبار کلیک کنید،  فضای نامی به اسم CreateDLL را مشاهده می کنید (کلمه CreateDLL بر اساس نامی که برای پروژه ی خود انتخاب کرده اید تغییر می کند). ما در پروژه ی خود از این فضای نام برای دسترسی به کلاس ها متدهای DLL خود استفاده خواهیم کرد. در داخل فایل Class1.cs یک متد با نام sum ایجاد می کنیم که دارای 2 پارامتر ورودی از نوع عدد صحیح می باشد و مجموع 2 عدد ورودی را به عنوان خروجی بر می گرداند:

using System;

namespace CreateDLL
{
    public class class1
    {
        public int sum(int x, int y)
        {                           
            return x + y;           
        }                           
    }
}

حال بر روی دکمه F5 کلیک کنید. با کلیک بر روی این دکمه ممکن است با پیغام زیر مواجه شوید. به این پیغام توجه نکرده و آن را ببندید :
create-and-use-dll-in-csharp-03
اکنون به مسیر bin/debug از پوشه پروژه می رویم. مشاهده می کنید که یک فایل DLL به نام CreateDLL.dll ایجاد شده است :

create-and-use-dll-in-csharp-04
مراحل ایجاد DLL به پایان رسید. حال یک پروژه ی دیگر ایجاد می کنیم تا طریقه استفاده از DLL ایجاد شده را به شما نشان دهیم .

 

مراحل استفاده از DLL ایجاد شده

یک پروژه ویندوزی به صورت زیر طراحی کنید :
create-and-use-dll-in-csharp-05
فایل  DLL ایجاد شده در مراحل قبلی را با استفاده از Add Refrence به پروژه اضافه می کنیم :
create-and-use-dll-in-csharp-06
create-and-use-dll-in-csharp-07
create-and-use-dll-in-csharp-08
بعد از افزودن DLL از طریق Add Refrence  یک گزینه به پنجره Solution Explorer اضافه می شود (فایل CreatingDLL.dll)
create-and-use-dll-in-csharp-09

کدهای زیر را در رویداد کلیک دکمه تایپ کنید (باز هم تاکیید می کنم تایپ کنید نه کپـــی !). قبل از ایجاد شی و استفاده از متد Add از فایل DLL ، باید فضای نام CreatingDLL را به پروژه اضافه کنید :

using CreateDLL;
using System;
using System.Windows.Forms;

namespace UsingDLL
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Class1 MyClass = new Class1();
            try
            {
                textBox3.Text = Convert.ToString(MyClass.sum(Convert.ToInt32(textBox1.Text), 
                                                             Convert.ToInt32(textBox2.Text)));
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}

اکنون برنامه را اجرا کنید و خروجی را ببینید .
create-and-use-dll-in-csharp-10
در این آموزش مشاهده کردید که چگونه یک DLL ساده را ایجاد کردیم و از آن استفاده نمودیم . یک DLL می تواند بسیار پیشرفته تر از مثال بالا باشد . شما می توانید بر اساس سطح مهارت خود در برنامه نویس DLL های دلخواه خود را ایجاد کنید و در پروژه های خود از آن استفاده کنید .

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر و اگر سوالی دارید در بخش پرسش و پاسخ مطرح بفرمایید.

  1. اسماعیل پاسخ دادن

    به نظرم برای الگوریتم هایی که نمیخواهیم لو برود کدها رو در یه دی ال ال مینویسیم درست متوجه شدم ؟

    • یونس ابراهیمی پاسخ دادن

      بله این یه جنبه استفاده از dll ه

  2. فرهاد پاسخ دادن

    واقعا خدا خیرت بده

  3. vahid پاسخ دادن

    سلام
    من یه سورس کتابخانه dll دارم که استادم میگه اجراش کن و ارور هاشو دربیار و اینکه متغیر هایی که در این کتابخانه وجود دارد مثلا x , y بعد از اجرا چه مقادیری میگیرن. مگر کتابخانه به تنهایی قابل اجرا و تست هست .با تشکر

    • یونس ابراهیمی پاسخ دادن

      سلام، dll قابل اجرا نیست و باید وارد برنامه یا اصطلاحا import ش کنید. بعد می تونید از کلاس ها و متدهای و متغیرهایی که درش به کار رفتن استفاده کنید. سوالی بود ممنون میشم تو بخش پرسش و پاسخ سایت مطرح بفرمایید. با تشکر

  4. ali پاسخ دادن

    سلام
    بابت مطالب خوبتون تشکر می کنم.
    الآن من یه مشکل دارم:من یه dll ساختم که توش ۳تا تابع داره.یه برنامه برای تست نوشتم که این dll رو تست کنم.تنها یکی از توابع رو میتونم داخل برنامه استفاده کنم!دو تابع دیگه برایم نمی آیند(اصلا انگار وجود ندارند).
    در داخل پروژه dll ام که رفتم از بخش solution explore هر سه تابع را پیدا کردم ولی دقیق همین دو تابع که گفتم،کنارشون یک قفل داره!!!چطوری این قفلو بردارم؟؟؟

    • یونس ابراهیمی پاسخ دادن

      سلام، مرسی
      ممنون میشم اگه مشکلی دارین در مورد این dll تو بخش پرسش و پاسخ مطرح بفرمایید. مثلا dll رو یه جایی آپلود کنید و لینکشو بذارین واسه دانلود تا دوستان بهتر بتونن کمکتون بکنن
      با تشکر

  5. Elahe پاسخ دادن

    سپاس آقای ابراهیمی

    • یونس ابراهیمی پاسخ دادن

      خواهش می کنم، لطف دارین