نحوه ایجاد و استفاده از DLL در سی شارپ
ایجاد کتابخانه کلاس (Class Library) در Visual Studio .NET بسیار راحت و آسان است. در این آموزش یاد می گیرید چگونه یک DLL را ایجاد کنید و چگونه در پروژه های خود در آن استفاده کنید .
مراحل ایجاد DLL
به صورت زیر یک پروژه Class Library ایجاد کرده و نام ان را CreateDLL بگذارید :
بعد از کلیک روی OK، در قسمت solution explorer یک کلاس به نام Class1.cs را مشاهده خواهید کرد، که ما می خواهیم کدهای DLL خود را درون آن بنویسیم :
زمانی که روی 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 کلیک کنید. با کلیک بر روی این دکمه ممکن است با پیغام زیر مواجه شوید. به این پیغام توجه نکرده و آن را ببندید :
اکنون به مسیر bin/debug از پوشه پروژه می رویم. مشاهده می کنید که یک فایل DLL به نام CreateDLL.dll ایجاد شده است :
مراحل ایجاد DLL به پایان رسید. حال یک پروژه ی دیگر ایجاد می کنیم تا طریقه استفاده از DLL ایجاد شده را به شما نشان دهیم .
مراحل استفاده از DLL ایجاد شده
یک پروژه ویندوزی به صورت زیر طراحی کنید :
فایل DLL ایجاد شده در مراحل قبلی را با استفاده از Add Refrence به پروژه اضافه می کنیم :
بعد از افزودن DLL از طریق Add Refrence یک گزینه به پنجره Solution Explorer اضافه می شود (فایل CreatingDLL.dll)
کدهای زیر را در رویداد کلیک دکمه تایپ کنید (باز هم تاکیید می کنم تایپ کنید نه کپـــی !). قبل از ایجاد شی و استفاده از متد 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); } } } }
اکنون برنامه را اجرا کنید و خروجی را ببینید .
در این آموزش مشاهده کردید که چگونه یک DLL ساده را ایجاد کردیم و از آن استفاده نمودیم . یک DLL می تواند بسیار پیشرفته تر از مثال بالا باشد . شما می توانید بر اساس سطح مهارت خود در برنامه نویس DLL های دلخواه خود را ایجاد کنید و در پروژه های خود از آن استفاده کنید .
سلام . مدیر سایت . خدا به شما سلامتی و عزت عطا کنه . امیدوارم همیشه موفق باشید و سربلند
سلام، مرسی، همچنین
کسی نبود کمک کنه؟
سلام ممنون بابت آموزشتون من ساخت فایل دی ال ال رو بلدم و توی پروژه های یونیتی ازشون استفاده میکنم فقط یک مشکل دارم
میخوام برای مثال چند تا تصویر رو توی همون فایل دی ال ال ذخیره کنم و توی همون فایل دی ال ال فراخوانی شون کنم میشه راهنمایی کنید که چطور میتونم تصویر به فایل مورد نظر اضافه کنم و اونو بخونم ؟
خدا خیرتون بده با این سایت خوبتون این نحوه توضیح دادن من هنر آموز هستم واقعا متشکر خسته نباشید
مرسی، لطف دارین
سلام یه سوال داشتم:ایا میشود کد هایی که برای ان dll نوشته شده را یک فرد دیگر تنها با دانلود dll ببیند؟یعنی dll ها امنیت لازم را دارا هستند؟
سپاس آقای ابراهیمی
خواهش می کنم، لطف دارین
سلام
بابت مطالب خوبتون تشکر می کنم.
الآن من یه مشکل دارم:من یه dll ساختم که توش 3تا تابع داره.یه برنامه برای تست نوشتم که این dll رو تست کنم.تنها یکی از توابع رو میتونم داخل برنامه استفاده کنم!دو تابع دیگه برایم نمی آیند(اصلا انگار وجود ندارند).
در داخل پروژه dll ام که رفتم از بخش solution explore هر سه تابع را پیدا کردم ولی دقیق همین دو تابع که گفتم،کنارشون یک قفل داره!!!چطوری این قفلو بردارم؟؟؟
سلام، مرسی
ممنون میشم اگه مشکلی دارین در مورد این dll تو بخش پرسش و پاسخ مطرح بفرمایید. مثلا dll رو یه جایی آپلود کنید و لینکشو بذارین واسه دانلود تا دوستان بهتر بتونن کمکتون بکنن
با تشکر
سلام
من یه سورس کتابخانه dll دارم که استادم میگه اجراش کن و ارور هاشو دربیار و اینکه متغیر هایی که در این کتابخانه وجود دارد مثلا x , y بعد از اجرا چه مقادیری میگیرن. مگر کتابخانه به تنهایی قابل اجرا و تست هست .با تشکر
سلام، dll قابل اجرا نیست و باید وارد برنامه یا اصطلاحا import ش کنید. بعد می تونید از کلاس ها و متدهای و متغیرهایی که درش به کار رفتن استفاده کنید. سوالی بود ممنون میشم تو بخش پرسش و پاسخ سایت مطرح بفرمایید. با تشکر
واقعا خدا خیرت بده
به نظرم برای الگوریتم هایی که نمیخواهیم لو برود کدها رو در یه دی ال ال مینویسیم درست متوجه شدم ؟
بله این یه جنبه استفاده از dll ه