Monday, May 9, 2011

DLL නැතිනම් (Dynamic Link Libraries) ගැන 3

 මේ ලිපිය ලියන්න ප්‍රමාද වුනා වැඩියි කියලයි මම හිතන්නේ. දෙවන ලිපියේ පොරොන්දුවකුත් වුනා DLL ගොනුවක් සාදන හැටි ගැන ලිපියක් පළ කරනවා කියලා. රසික ඉල්ලීමකුත් තිබුනා මේක ගැන ලිපියක් හැකි ඉක්මනින් දාන්න කියලා. එහෙනම් අද ඒ පොරොන්දුව ඉ‍ටුකරනවා. :-)
DLL ගොනුවක් කියන්නේ මොකක්ද කියලා මම මුල් ලිපිවල කිව්වා.DLL ගොනුවක් සෑදීම කළකට පෙර නම් තරමක් අමාරු කාර්යයක්. ඒත් දැන්නම් පියවර කීපයක සුළු ක්‍රියාවලියක්.DLL ගොනුවක් නිර්මාණය කරන්න ඇත්තෙන්ම පරිගණක භාෂාවක සහය අවශ්‍යයයි.මුල් කාලයේ බෙහෙවින්ම භාවිතා කළේ C++ පරිගණක භාෂාව. නමුත් වර්තමානයේ Delphi,VB.Net ,C#  වැනි පරිගණක භාෂා භාවිතා කරනවා.එයිනුත් පහසුවෙන්ම DLL ගොනුවක් සෑදීමට භාවිතා කල හැක්කේ C#. මෙහිදී මම ඔබට පෙන්වන උදාහරණය සෑදීමට යොදාගත්තෙත් මෙම භාෂාවයි . තව විශේෂ දෙයක් කියන්න තියෙනවා DLL ගොනු ගැන,ඔබ  සාදන මෙම DLL ගොනුව එක පරිගණක භාෂාවකට සීමා වෙන්නේ නැහැ.පොදුවේ VB.Net,Delphi.Visual C++  වගේ පරිගණක භාෂා ‍රැසකට ප්‍රයෝජනයට ගත හැකියි.එමගින් පරිගණකයේ මතක සම්පත් (memory resources) අපතේ යෑම වළක්වා ගන්න පුළුවන්. මෙම ක්‍රියාකාරකම කරන්න ඔබගේ පරිගණකයේ Microsoft Visual C# Express Edition 2005 හෝ Microsoft Visual Studio 2005  ස්ථාපනය කරගෙන සිටීම වැඩකරගෙන යාමට රුකුලක් වනවා.තව ඒ සමගම dotnet framework 2.0 .
          එහෙනම් වැඩේ පටන් ගනිමු.පළමුව Visual Studio 2005 විවෘත කරගන්න.පළමු තිර සටහන් වලින් දැක්වෙන්නේ ඒක

 එහි Visual C# යටතේ Class Library යන්න ‍තෝරන්න.ව්‍යාපෘතියට කැමති නමක් දෙන්න .


     මම නම් දුන්නේ  my_class ලෙස.එය කැමති ස්ථානයක සුරක්ෂිත කරන්න.



ඉන්පසුව රූපසටහනේ දැක්වෙන ආකාරයට කේත සටහන ඇතුලත් කර ව්‍යාපෘති ගොනුව සුරකින්න


  ඉන්පසු build මෙනුවෙන් build solution හෝ යතුරු පුවරුවෙන් F6 යතුර ඔබන්න.


එවිට ඔබට X:\your_class\your_class\bin\Debug ස්ථානයේ මෙතෙක් වෙලා ඔබ බලා සිටි DLL ගොනුව සෑදී ඇති බව ඔබට පෙනේවි :-).මෙහිදී X: ලෙස දුන්නේ ඔබගේ ව්‍යාපෘති ගොනුව සු‍රැකි ධාවකය.


එතකොට කොහොමද මේ ගොනුව ක්‍රියාකරන බව අප දකින්නේ.?මට මුලින්ම කියන්න බැරිවුනා. මම මෙහි දක්වන කේත වලින් සෑදුනේ මූලික ගණිත කර්ම ඉ‍ටුකල හැකි DLL ගොනුවක් බව.මේකෙන් කරන්නේ එකතු කිරීම,අඩු කිරීම,ගුණ කිරීම හා බෙදීම.අත්හදා බැලීමේදී හරියටම වැඩ කළේ එකතු කිරීම,අඩුකිරීම ගණිත කර්ම පමණයි.

හරි ආයෙත් බහිමු වැඩේට,  නැවත වතාවක් Visual Studio 2005 වලින් නව Visual C#  ව්‍යාපෘතියක් ආරම්භ කරන්න. මෙහිදී Windows Application ලෙස ‍තෝරා (මොකද අපට වුවමනා චිත්‍රක අතුරු මුහුණතක් නිසා) කැමති නමකින් සුරක්ෂිත කරන්න.මෙහිදී මම එය test_dll ලෙස නම් කෙරුවා.


මෙහි text box දෙකක් හා විධාන බොත්තම් දෙකක් තියෙනවා . ඒ ආකාරයට සරල අතුරු මුහුණතක් සාදා ගන්න.




පසුව මෙහි දැක්වෙන ආකරයට References යටතේ Add reference යන්න ‍තෝරා දෙන්න(මෙසේ කරන්නේ අපට පරීක්ෂා කිරීමට අවශ්‍ය DLL ගොනුව ව්‍යාපෘතියට ලබාගැනීමට,මෙහිදී එම ගොනුවේ සියලුම ගුණාංග අපගේ ව්‍යාපෘතියට ඇතුළත්වනවා. )


මෙහි Browse ටැබයෙන් අවශ්‍ය ගොනුව තොරා දෙන්න.එතකොට ඒ වැඩෙත් ඉවරයි.


ඊටත් පස්සේ විධාන අතුරු මුහුණතේ බොත්තම් මත double click  කරලා පහත දැක්වෙන කේත සටහන් ඇතුළත් කරන්න.


 ඉන්පසුව යතුරු පුවරුවේ F6 යතුර ඔබන්න.පස්සේ යතුරු පුවරුවේ F5 ඔබලා ව්‍යාපෘතිය වරක් ධාවනය කරලා නවත්වන්න. ඉන්පසු කලින් DLL ගොනුවේ වගේම /bin/Debug ෆෝල්ඩරය ඇතුළේ තියෙන test_dll.exe ධාවනය කරන්න.


එවිටම වාගේ command prompt එකක් විවෘත කරලා පහත තිර සටහනේ දැක්වෙන විධානය 
සටහන් කරන්න.එවිට ඔබ මොකක්ද දකින්නේ? අපි හදපු DLL ගොනුව ගැන සඳහනක් වත් ඒකේ 
නැහැ නේද? :-(




හරි කලබල වෙන්න එපා! අපගේ වැඩසටහන එහෙමම ධාවනය වෙද්දී text box දෙකට අගයයන් දීලා , එහි විධාන බොත්තමක් ඔබලා බලන්න . පස්සේ කලින් විදිහටම command prompt එකට මුලින් දුන්න විධානය දෙන්න . එවිට ඔබට පෙනෙනවා ඇති අප සෑදූ DLL ගොනුවත් පරීක්ෂණය ධාවනයට එකතු වෙලා බව . :-)






මටත් හරියටම පෙන්නන්න ඕන වුනේ මේ දෙය තමයි. තව දේවල් ටිකකුත් අමතරව එකතු කරන්න කැමතියි.මුලින්ම මම පරීක්ෂණයට යොදා ගත්තේ Visual Studio 2010 සංස්කරණය.ඒකේ පොඩි අවාසි කීපයක් තිබුනා.එහි තිබුනේ dotnet framework 4.0 . මේකෙනුත් DLL ගොනු හදන්න පුළුවන් . හැබැයි හැදෙන DLL ගොනුව Visual Studio වල පහළ සංස්කරණ වල යොදා ගැනීමේදි ප්‍රශ්න ඇති කෙරුවා.(විශේෂයෙන් Visual Studio 2003,2005,2008 වගේ සංස්කරණ වල).ඒ නිසයි මම Visual Studio 2005 මෙහිදී යොදා ගත්තේ.අනික DLL ගොනු ගැන මෙහෙම ලිපි තුනකින් ඉදිරිපත් කරන්න බැහැ. මෙහිදී ඉදිරිපත් 
කළ කරුණු තරමක් අපැහැදිලිවෙන්න පුලුවන්.ඒකට කණගා‍ටුව ප්‍රකාශ කරන ගමන් අදට සමු ගන්නවා . මතක ඇතුව ඔබගේ වටිනා අදහස් මෙහි පළ කරන්න .

උදාහරණයක් ලෙස  DLL ගොනුවක සැබෑ ක්‍රියාකාරීත්වය වටහා ගැනීමට මෙම වෙබ් අඩවිය වෙත පිවිසෙන්න .http://nucos.wordpress.com.

මෙන්න අර DLL ව්‍යාපෘති ගොනු . මම ගානෙ නොමිලේ. මෙතනින් ලබාගන්න..

1.DLL ගොනුව.
2.චිත්‍රක අතුරු මුහුණත.  


7 comments:

  1. lesson 1 godak watinawa. digatama liyanna.
    VB.net lessons puluwannam patan ganna. godak api wage juniorslata wadagath wei...., nitharama liyanna...
    We are waiting for VB.Net lessons....(Nuwan)

    ReplyDelete
  2. wht is u'r uni or institute?
    agreed to nuwan.. start VB.Net lessons

    ReplyDelete
  3. @ Anonymous
    ප්‍රතිචාරයට ස්තූතියි. වරදවා වටහා ගන්න එපා.මෙම ලිපි පෙළ පරිගණක භාෂා පාඩම් මාලාවක් නෙවෙයි.පරීක්ෂණාත්මක ලිපි පෙළක් . මේ එම ලිපි පෙළෙහි අවසාන ලිපිය.මෙම ලිපි පෙළෙන් ඔබ යමක් ඉගෙන ගත්තානම් ඒකයි මට තියෙන සතුට.ලිපි පෙළ මුල ඉඳන් බලන්න.අනික් කාරණය මම ශ්‍රී ලංකා විවෘත විශ්ව විද්‍යාලයේ ඉංජිනේරු තාක්ෂණ පීඨයේ සිසුවෙක්.

    ReplyDelete
  4. @තාරක විජේබණ්ඩාර
    බොහොම ස්තූතියි

    ReplyDelete
  5. Machan, this is perfect! :)

    I think you don't need o start a series of tutorial articles. Just show your readers how to observe and self learn.

    "මටත් හරියටම පෙන්නන්න ඕන වුනේ මේ දෙය තමයි."

    This is the way to do it. :)

    ReplyDelete
  6. @ශාකුන්තල
    බොහොම ස්තූතියි මිත්‍රයා,
    ඒ වගේම මුල් ලිපි පෙළේ ඉඳන්ම අඩුපාඩු පෙන්නා දීලා ලිපි පෙළ ක්‍රමවත් කෙරුවටත් මම ආයෙමත් ස්තූතිවන්ත වෙනවා.

    ReplyDelete

ඔබේ ප්‍රතිචාර මට ගොඩක් වටිනවා..