PDA

مشاهده نسخه کامل : فایل dll. چیست ؟



K A S R A
15-03-08, 01:30
سلام به همه دوستان عزیز :love:




فایل DLL چیست ؟
یه توضیح کوچیک در مورد Dll ها و بعدشم روش ساختن DLL با #C .:great:



فایل dll یک کتابخونه ازData و Code هست که می تونه در یک زمان توسط چندینApplication مورد استفاده قرار بگیره .

برای مثال در سیستم عامل Windows فایل Comdlg32.dll عملکرد های مربوط به Dialog Box ها رو انجام میده .
در نتیجه هر Application ی در ویندوز می تونه از توابعی که توی این dll هستند موقع باز کردن Dialog Box استفاده کنه .

مزیت اصلی فایل های dll در استفاده مجدد و همینطور استفاده بهتر از حافظه سیستم هست .



کاربرد dll در برنامه نویسی :

با استفاده از این فایل های dll میشه برنامه هارو به صورت کاملا Modular و با مولفه های قابل مدیریت نوشت .

برای مثال یه برنامه Accountig که به صورت Modular نوشته شده می تونه بسیار سریعتر از نمونه مشابه که Modular نوشته نشده اجرا بشه .

دلیلشم اینه که Module ها به صورت جدا از هم کار می کنند و هر Moduleی که نصب شده باشه در زمان اجرا توی حافظه Load میشه و از یه Module فقط زمانی استفاده میشه که به اون Module احتیاج باشه .



مزیت دیگه استفاده از Module اینه کهUpdate برنامه خیلی راحت تر انجام میشه و فقط Module مورد نظر Update میشه بدون اثر گذاشتن روی سایر Module ها .



فایل های زیر در سیستم عامل Windows به عنوان DLL مورد استفاده قرار می گیرند .



ActiveX Controls (.ocx) files

مثه کنترل Calendar در ویندوز .



Control Panel (.cpl) files

مثه همه Item های موجود در کنترل پنل Windows

Device Driver Controls (.drv) files
مثه یک فایل Driver برای یک Printer ...

ان شالله بعد از این مقدمه میریم سراغ ساختن DLL ها با #C .
موفق باشید :11():
کسری

MoBiN.R
15-03-08, 17:20
مثله همیشه عالی بود

K A S R A
15-03-08, 21:22
سلام به دوستان عزیز :love:
ادامه کار ...:1. (40):

برنامه نویسی DLL توی VStudio.Net خداییش کار خیلی سختیه ...

تازه اگه که Error های عجیب و غریب VStudio توی پروژه های DLL نخوان گیر بدن ...

خوشبختانه خودWindows مجموعه کاملی از DLL ها رو در اختیار برنامه نویس قرار میده .

در نتیجه خیلی به ندرت پیش میاد که بخوایم DLL های مورد نیازمون رو خودمون بنویسیم ...

این کار بیشتر توی پروژه های Game Programing انجام میشه .
خود من یه بار این کارو امتحانش کردم , تازه فقط ساختنشو ... Debuging و Testing این حرفاش که دیگه بماند ...

واقعا کار پیچیده ایه ...
ولی برای آشنایی هم که شده ساختن DLL با VStudio خیلی کوتاه مرور می کنیم .

به دو روش میشه یه پروژه DLL رو ایجاد کرد :

1- از طریق Class Library
2- از طریق Windows Forms Control Library

ما فقط روی روش اول تمرکز می کنیم .

در روش اول :

1- از منوی File گزینه New Project رو انتخاب کنید .

2- در کادر Project Type گزینه Visual C#.Net رو انتخاب کنید .

3- بعدش توی کادر Template گزینه Class Library رو انتخاب کنید .

4- برای پروژه یک اسم و آدرس مشخص کنید .پنجره کد شامل Class1 باز میشود ...در این پنجره میشه کد DLL رو برنامه نویسی کرد .

ادامه دارد ...:11():

MoBiN.R
16-03-08, 08:55
عالی بود .. منتظر ادامه هستیم ....

K A S R A
16-03-08, 14:15
سلام به همه عزیزان ...:love:

در قسمت قبلی رسیدیم به پنجره Class1.cs ...

1- توی پنجره Class1.cs این قطعه کد رو بنویسید .



// Interface declaration


public interface ICalculator
}

;( int Add (int Number1 , int Number2
{

2- این قطعه رو هم اضافه کنید :




public class ManagedClass:ICalculator
{
public int Add(int Number1,int Number2)
{
return Number1+Number2;
{

{

این قطعه برنامه خیلی ساده دو عدد رو با هم جمع می کنه . :whistle:

3- Vstudio Command Promt رو اجرا کنید .

حالا باید برای Class Library که در مرحله قبل طراحی شد یه اسم تعیین کنید .

4- این دستور رو در Command Promt تایپ کنید :

sn.exe -k MyKeyFile.SNK

بعدش فایل MyKeyFile.SNK رو در فولدر پروژه کپی کنید .

5- روی فایلAssemblyInfo.cs دابل کلیک کنید تا در پنجره Solution Explorer باز بشه .
کد های زیر رو :


[assembly: ComVisible(false)]
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]
با این کدها جایگزین کنید :


[assembly: ComVisible(true)]
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("..\\..\\MyKeyFile.SNK")]

در آخر کلید هایCtrl + Shift + B رو بزنید تا فایل DLL تولید شود .:wink:

تمام ...

خب دیدین که Generate کردن DLL برای یه تابع خیلی ساده هم , کار خیلی پیچیده ایه.

تازه اونم به مدد MSDN:1. (40): .
و گرنه ساختن یه کتابخونه کامل خیلی سخت تر از این حرفاست .

البته هنوز حرفی در مورد این که از این DLL چطور میشه استفاده کرد نزدیم ...
خب اینم باشه واسه قسمت بعد ... :great:
موفق باشید .
:11():
کسری .
:11():

احسان83
30-11-08, 15:12
آقا عالي بود اما نوشتنش تو ++C رو توضيح نميدي؟

MoBiN.R
30-11-08, 19:18
با سلام ... آقا احسان ورود شمارو به این اینجمن تبریک میگم ... متاسفانه آقا کسری به خاطر مشغله تحصیلی در کنار ما نیستن فعلا هر وقت اومدن جواب شمارو هم میدن