DLL বনাম LIB
একটি লাইব্রেরি হল সম্পদের একটি সংগ্রহ যা অ্যাপ্লিকেশন বিকাশ করতে ব্যবহার করা যেতে পারে। একটি লাইব্রেরি সাধারণত সাবরুটিন, ফাংশন, ক্লাস, মান এবং প্রকারগুলি নিয়ে গঠিত। লিঙ্কিং প্রক্রিয়া চলাকালীন (সাধারণত একটি লিঙ্কার দ্বারা করা হয়), লাইব্রেরি এবং এক্সিকিউটেবল একে অপরের উল্লেখ করে। লাইব্রেরি ফাইলগুলিকে স্ট্যাটিক এবং ডাইনামিক লাইব্রেরিতে ভাগ করা হয় যে সময়ে সাবরুটিনগুলি লক্ষ্য অ্যাপ্লিকেশনে লোড করা হয় তার উপর নির্ভর করে। তদনুসারে, LIB ফাইলগুলি স্ট্যাটিক্যালি লিঙ্কযুক্ত লাইব্রেরি এবং DLL ফাইলগুলি গতিশীলভাবে লিঙ্কযুক্ত লাইব্রেরি৷
DLL কি?
ডাইনামিক লিংক লাইব্রেরি (সাধারণত DLL নামে পরিচিত) মাইক্রোসফ্ট দ্বারা তৈরি একটি শেয়ার্ড লাইব্রেরি বাস্তবায়ন।এটি.dll,.ocx বা.drv এক্সটেনশন ব্যবহার করে এবং সেগুলি মাইক্রোসফ্ট উইন্ডোজ এবং OS/2 অপারেটিং সিস্টেমে ব্যবহৃত হয়।.dll নিয়মিত DLL ফাইল দ্বারা ব্যবহৃত হয়। এবং.ocx এক্সটেনশনটি লাইব্রেরি দ্বারা ব্যবহৃত হয় যেখানে ActiveX নিয়ন্ত্রণ রয়েছে এবং.drv এক্সটেনশনটি লিগ্যাসি সিস্টেম ড্রাইভার ফাইল দ্বারা ব্যবহৃত হয়। DLL ফাইল ফরম্যাটটি Windows EXE ফাইলের মতোই (32-বিট/64-বিট উইন্ডোজে পোর্টেবল এক্সিকিউটেবল ফাইল এবং 16-বিট উইন্ডোজে নতুন এক্সিকিউটেবল)। অতএব, কোড, ডেটা এবং সংস্থানগুলির যে কোনও সংমিশ্রণ DLL ফাইলগুলিতে থাকতে পারে (যেমন EXE ফাইলগুলিতে)। প্রকৃতপক্ষে, DLL ফাইল বিন্যাস সহ ডেটা ফাইলগুলিকে রিসোর্স DLL বলা হয়। আইকন লাইব্রেরি (.icl এক্সটেনশন সহ) এবং ফন্ট ফাইল (.fon এবং.fot এক্সটেনশন সহ) হল রিসোর্স DLL-এর উদাহরণ।
সেকশন নামক উপাদানগুলি একটি DLL তৈরি করে এবং প্রতিটি বিভাগের নিজস্ব বৈশিষ্ট্য রয়েছে যেমন শুধুমাত্র-পঠনযোগ্য/লেখাযোগ্য এবং এক্সিকিউটেবল/নন এক্সিকিউটেবল। কোড বিভাগগুলি নির্বাহযোগ্য, যখন ডেটা বিভাগগুলি নির্বাহযোগ্য নয়। কোড বিভাগগুলি ভাগ করা হয় এবং ডেটা বিভাগগুলি ব্যক্তিগত।এর মানে DLL ব্যবহার করে সমস্ত প্রক্রিয়া কোডের একই অনুলিপি ব্যবহার করবে, যখন প্রতিটি প্রক্রিয়ার ডেটার নিজস্ব অনুলিপি থাকবে। উইন্ডোজের প্রাথমিক ডাইনামিক লাইব্রেরি হল kernel32.dll, যেটিতে উইন্ডোজের বেস ফাংশন (ফাইল এবং মেমরি সম্পর্কিত কার্যকারিতা) রয়েছে। COM (কম্পোনেন্ট অবজেক্ট মডেল) হল DLL থেকে OOP (অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং) এর এক্সটেনশন। COM ফাইলের তুলনায় প্রচলিত DLL ব্যবহার করা সহজ৷
LIB কি?
LIB ফাইলগুলি স্ট্যাটিক লাইব্রেরি (স্ট্যাটিকলি লিঙ্কড লাইব্রেরি নামেও পরিচিত)। LIB ফাইলগুলিতে সাবরুটিন, বাহ্যিক ফাংশন এবং ভেরিয়েবলের একটি সংগ্রহ রয়েছে। LIB ফাইলগুলি কম্পাইল-টাইমে সমাধান করা হয় (রান-টাইমের বিপরীতে)। কোড আসলে টার্গেট অ্যাপ্লিকেশনে অনুলিপি করা হয়. একটি কম্পাইলার, লিঙ্কার বা একটি বাইন্ডার এই রেজোলিউশনটি করবে এবং একটি অবজেক্ট ফাইল এবং একটি এক্সিকিউটেবল ফাইল তৈরি করবে। এই প্রক্রিয়াটিকে স্ট্যাটিক বিল্ড প্রক্রিয়া বলা হয়।
DLL এবং LIB এর মধ্যে পার্থক্য কি?
LIB লাইব্রেরিগুলিকে কম্পাইলের সময় কল করা যেতে পারে, কিন্তু DLL লাইব্রেরিগুলি শুধুমাত্র রান-টাইমে কল করা যেতে পারে।LIB ফাইলগুলি DLL ফাইলের তুলনায় উল্লেখযোগ্যভাবে বড়। DLL ফাইলগুলির একটি খুব সাধারণ সমস্যা হল সংস্করণ সমস্যা। এটি ঘটে যখন DLL এর কোড পরিবর্তন করা হয় এবং অ্যাপ্লিকেশনটি একটি DLL এর একটি ভুল সংস্করণ ব্যবহার করে। এটি LIB ফাইলগুলির সাথে সম্পর্কিত একটি সমস্যা নয়। পুনঃব্যবহারযোগ্যতার পরিপ্রেক্ষিতে, সিস্টেমের নতুন সংস্করণ বা সম্পূর্ণ নতুন অ্যাপ্লিকেশন লেখার সময়, ডিএলএল সর্বদা LIB-এর চেয়ে ভাল।