نحوه ی ساخت DLL در ویژوال بیسیک دات نت
هر DLL یا Class Library از یک یا چند کلاس تشکیل شده است. هر کلاس هم می تواند شامل یک یا چندین تابع ویا متغیر باشد.
تابع یک دستور است که عملی را برای ما انجام می دهد. تابع ها ممکن است دارای ورودی باشند که به آن ها آرگومان (پارامتر) می گویند و تابع ها معمولا مقداری را بر می گردانند. به عبارت دیگر یک تابع اطلاعاتی را دریافت می کند، بر روی آن ها اعمالی انجام داده و در آخر اطلاعاتی را در اختیار ما قرار می دهد.
متغیر بخشی از حافظه ی موقت است که می تواند با توجه به نوع متغیر مقادیری از اطلاعات را در خود نگه دارد.
یکی از استفاده های DLL در برنامه نویسی عدم نیاز به کد نویسی طولانی است. فرض کنیم ما قصد نوشتن برنامه ای را داریم که در چند رویداد مختلف آن نیاز به چرخاندن 180 درجه ای یک تصویر است. می توان کد چرخاندن عکس را در چندین رویداد این برنامه تکرار کنیم ولی این کار باعث کند شدن برنامه می شود. اما اگر کد چرخاندن عکس را به عنوان یک تابع در یک DLL وارد کنیم، می توانیم در رویداد های مورد نظر به جای نوشتن کل کد، فقط یک خط مربوط به تابع ایجاد شده را قرار دهیم. چون مقدار کد کاهش یافته برنامه بازده بهتری خواهد داشت. علاوه بر آن می توان از Class Library در سایر برنامه ها هم استفاده کنیم. مثلا می توانیم کد های پر کاربرد خود در یک DLL قرار داده و از آن ها در هر جایی که دوست داشته باشیم استفاده کنیم.
پاسخ: نحوه ی ساخت DLL در ویژوال بیسیک دات نت
برای ایجاد یک DLL ابتدا ویژوال استادیو را اجرا می کینم. یک پروژه ی جدید ایجاد می کنیم (New Porject را کلیک می کنیم). زبان ویژوال بیسیک و سپس در سمت راست Class Library را بر می گزینیم.
پنجره ی کدی به صورت زیر ایجاد می شود:
Public Class Class1
End Class
تابع ها و متغیر های خود را باید بین این دو خط تعریف کنیم. لازم به ذکر است در خط اول Class1 اسم کلاس است که می توانیم آن را تغییر دهیم.
ما دو نوع تابع متداول داریم: گونه ی که خود می توانند مقداری را در خود ذخیره کنند و خود به عنوان یک متغیر باشند و گونه ای دیگر که این گونه نیستند.
ساختار گونه ی اول:
Shared Function [Function Name](Parameter) As [Dimension]
End Function
ساختار گونه ی دوم:
Shared Sub [Sub Name](Parameter)
End Sub
افزودن آرگومان به تابع در هر دو گونه یکسان است:
Shared Sub [Sub Name](ByVal [ParameterName1] As [Dimension], ByVal [ParameterName2] As [Dimension], ...)
End Sub
یک Function ساده بدون ورودی:
کد:
Shared Function UpTime() As Integer
'نام تابع UpTime است که می تواند مقادیری از نوع Integer (عدد صحیح) را در خود ذخیره کند. چون داخل () چیزی وجود ندارد پس تابع بدون ورودی است.
UpTime = My.Computer.Clock.TickCount \ 1000
'My.Computer.Clock.TickCount مقدار زمان روشن بودن رایانه بر حسب میلی ثانیه است.
'این مقدار را تقسیم (تقسیم صحیح) بر 1000 می کنیم تا مقدار بر حسب ثانیه بدست آید. سپس این مقدار را در خود تابع UpTime ذخیره می کنیم. یعنی {مقدار} = UpTime .
End Function
'پایان تابع
یک Sub ساده بدون ورودی:
کد:
Shared Sub MsgUpTime
'نام تابع MsgUpTime است. چون داخل () چیزی وجود ندارد پس تابع بدون ورودی است.
MsgBox(My.Computer.Clock.TickCount \ 1000)
'در این قسمت از تابع MsgBox() استفاده کردیم. یعنی این تابع خود مقدار روشن بودن رایانه را در یک Message Box نشان می دهد.
End Sub
'پایان تابع
یک Function ساده با ورودی:
کد:
Shared Function Average(ByVal Number1 As Double, ByVal Number2 As Double)
As Double
'نام تابع ما Average است. این تابع می تواند مقادیری از نوع Double (عدد اعشاری) را در خود ذخیره کند. Average دارای دو ورودی است که با علامت ویرگول از هم جدا شده اند. نام ورودی اول Number1 و دومی Number2 است که هر دوی آن ها از نوع Single (عدد اعشاری) می باشند.
' توجه داشته باشیم دقت اعشار Double دو برابر Single است.
Average = (Number1 + Number2) / 2
'مقدار دو ورودی را با هم جمع می کنیم و عدد حاصل را بر 2 تقسیم می کنیم. سپس مقدار به دست آمده را در تابع Average ذخیره می کنیم.
End Function
'پایان تابع
متغیر در DLL:
در DLL ما می توانیم دو نوع متغیر تعریف کنیم:
گونه ی اول که متغیر های ساده اند و گونه ی دوم که متغیر های اشتراکی نام دارند.
همه ی ما متغیر های ساده را می شناسیم. همان متغیر هایی که همواره در برنامه های خود از آن ها استفاده می کنیم.
ساختار:
Dim [Dimension Name] As [Dimension]
مثال:
Dim mytxt As String
متغیر های اشتراکی هم دقیقا مانند متغیر های نوع اول اند اما یک تفاوت عمده بین این دو وجود دارد. متغیر های ساده در یک کلاس فقط مربوط به همان کلاس است و فقط اجزای آن کلاس می توانند از این متغییر استفاده کنند. اما متغییر های اشتراکی علاوه بر این که قابل استفاده برای کلاس خود هستند، مقدار های خود را به اشتراک می گذارند.
ساختار:
Public Shared [Dimension Name] As [Dimension]
مثال:
Public Shared mytext As String
یک Sub ساده با ورودی (که خروجی خود را در یک متغیر اشتراکی قرار می دهد):
کد:
Public Shared Number As Double
'متغیر اشتراکی به نام Number را از نوع Double تعریف می کنیم.
Shared Sub dimAverage(ByVal Number1 As Single, ByVal Number2 As Single)
'یک تابع با نام dimAverage تعریف می کنیم. dimAverage دارای دو ورودی است که با علامت ویرگول از هم جدا شده اند. نام ورودی اول Number1 و دومی Number2 است که هر دوی آن ها از نوع Single می باشند.
Number = (Number1 + Number2) / 2
'مقدار دو ورودی را با هم جمع می کنیم و عدد حاصل را بر 2 تقسیم می کنیم. سپس مقدار به دست آمده را در متغیر Number ذخیره می کنیم.
End Sub
'پایان تابع
پس از این که DLL مورد نظر خود را نوشتیم آن را کامپایل می کنیم. برای این کار به منوی Build رفته و گزینه ی اول را انتخاب می کنیم. اگر همه چیز درست باشد DLL با موفقیت ساخته می شود.
1 :تعداد فایل پیوست
نحوه ی استفاده از یک DLL در برنامه نویسی یک نرم افزار
در محیط برنامه نویسی نرم افزار مورد نظر به منوی Project رفته و Add Reference... را انتخاب می کنیم . در پنجره ی باز شده وارد زبانه ی Browse می شویم و به مسیری که DLL ما در آن قرار دارد می رویم. DLL را انتخاب می کنیم و در آخر OK را می زنیم.
سپس برای دسترسی به اجزای Class Library از الگوی زیر استفاده می کنیم:
[DLL Name].[Class Name]
مثال:
MyDLL.SimpleClass
حالا اگر یک نقطه ی دیگر در ادامه اضافه کنیم، اجزای این کلاس را می بینیم. این اجزا، اجزای اشتراکی هستند. فرق بین اجزای اشتراکی و ساده در اینجا مشخص می شود. در این لسیت خبری از متغیر های ساده و توابع غیر اشتراکی نیست. همین طور هم که ملاحضه کردید در بالا همه ی توابع به صورت اشتراکی تعریف شده اند.
اکنون می توانیم از این اجزا در برنامه ی خود استفاده کنیم.
در پایان کد های توضیح داده در این مقاله را به صورت یک Class Library در آوردم و یک برنامه نوشتم که در آن از این DLL استفاده شده است. این DLL و Application با زبان VB.NET 2005 نوشته شده اند و همراه با سورس می باشند که آن ها را در لینک زیر قرار داده ام:
برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ]
هر گونه سوال، انتقاد و پیشنهادی داشته باشید در خدمتم.
با سپاس
آرمین:1. (38):
پاسخ: نحوه ی ساخت DLL در ویژوال بیسیک دات نت
عالی بود آرمین جان .. فقط عزیز فایل های پروژه های مثال که اینجا میزاری رو هم بزار .. در ضمن اگه ممکنه فایل هاتو توی همین سایت آپلود کن تا مشکلی برای دانلود پیش نیاد
پاسخ: نحوه ی ساخت DLL در ویژوال بیسیک دات نت
با سلام!
مبین جان:
1-منظورت از پروژه ی مثال چیه؟
2-متاسفانه یکم با آپلود تو اینجا مشکل دارم. در هنگام بارگذاری خطا می ده.
با سپاس
آرمین:cool:
پاسخ: نحوه ی ساخت DLL در ویژوال بیسیک دات نت
یعنی هم مثالی که انجام میدی ، پروژه اون مثال رو هم بنویس آپلود کن بزار اینجا .. یعنی فایل پروژه اون مثال هارو
پاسخ: نحوه ی ساخت DLL در ویژوال بیسیک دات نت
نقل قول:
یعنی هم مثالی که انجام میدی ، پروژه اون مثال رو هم بنویس آپلود کن بزار اینجا .. یعنی فایل پروژه اون مثال هارو
با سلام!
مبین جان! کاری که گفته بودی رو انجام دادم و فایل ها را تو انجمن بالاگذاری کردم!
با سپاس
آرمین:1. (26):
پاسخ: نحوه ی ساخت DLL در ویژوال بیسیک دات نت
کار بسیار خوبی کردی ... ادامه بده بحثتو عزیز