.Dll এবং .exe এর মধ্যে পার্থক্য?


92

আমি dll এবং exe ফাইলের মধ্যে সঠিক পার্থক্য জানতে চাই।


4
আপনার এখানে কিছু প্রসঙ্গ যুক্ত করা উচিত: আপনি কি একজন শিক্ষানবিস আপনি পিই
স্টাফগুলির

4
এটা সত্য আমি একটি শিক্ষানবিস। এটি ট্যাগ হিসাবে একটি সাক্ষাত্কার-প্রশ্ন।
উমেশ আওতে

আরও গুরুত্বপূর্ণ, এটি সত্যলিগনেশের দ্বারা একটি (মুছে ফেলা) সহ একটি নকল ...
মার্ক গ্র্যাভেল

উত্তর:


73

EXE:

  1. এটি একটি এক্সিকিউটেবল ফাইল
  2. এক্সিকিউটেবল লোড করার সময়, কোনও রফতানি বলা হয় না, কেবলমাত্র মডিউল এন্ট্রি পয়েন্ট।
  3. যখন একটি সিস্টেম নতুন এক্সিকিউটেবল প্রবর্তন করে, একটি নতুন প্রক্রিয়া তৈরি হয়
  4. প্রক্রিয়াকরণের মূল থ্রেডের প্রেক্ষিতে এন্ট্রি থ্রেডকে ডাকা হয়।

ডিএলএল:

  1. এটি একটি ডায়নামিক লিঙ্ক লাইব্রেরি
  2. একাধিক রফতানি প্রতীক রয়েছে।
  3. সিস্টেমটি একটি বিদ্যমান প্রক্রিয়ার প্রসঙ্গে একটি ডিএলএল লোড করে।

আরও বিশদের জন্য: http://www.c-sharpcorner.com/Interviews/Answer/Answers.aspxQuestionId=1431&MajorCategoryId=1&MinorCategoryId=1 http://wiki.answers.com/Q/What_is_the_differences_between_an_EXLaa_

তথ্যসূত্র: http://www.dotnetspider.com/forum/34260-What-differences-between-dll-exe.aspx


9
সিস্টেমটি থ্রেড নয়, একটি বিদ্যমান প্রসেসে একটি ডিএলএল লোড করে। কোনও LibMainফাংশনের মাধ্যমে কোনও থ্রেড শুরু বা বন্ধ হয়ে গেলে কোনও প্রক্রিয়াতে প্রতিটি ডিএলএল একটি বিজ্ঞপ্তি পেতে পারে।
ড্যানিয়েল আরউইকার

13
আপনার 1 এবং 2 পয়েন্টগুলি 100% সঠিক নয়। যেহেতু আপনি একটি লোডলিবারিয়ানেক্স ব্যবহার করতে পারেন কোনও এক্সে বা ডিএল এর অর্থ আপনি কোনও এক্সি বা ডিএল থেকে একটি এন্ট্রি পয়েন্ট লোড করতে গেটপ্রোকএড্রেস ব্যবহার করতে পারেন। সুতরাং সে ক্ষেত্রে এক্স এবং ডিএল উভয় ফাইলই গতিশীলভাবে লিঙ্কযুক্ত হতে পারে এবং এন্ট্রি পয়েন্টগুলির অনেকগুলি সংখ্যা থাকতে পারে।
jussij

136

আমি জানি না কেন প্রত্যেকে .NET এর প্রসঙ্গে এই প্রশ্নের উত্তর দিচ্ছে। প্রশ্নটি একটি সাধারণ ছিল এবং কোথাও নেটও উল্লেখ করেনি।

ঠিক আছে, প্রধান পার্থক্যগুলি হ'ল:

এক্সই

  1. একটি এক্সী সর্বদা তার নিজস্ব ঠিকানার জায়গায় চালিত হয়, এটি পৃথক প্রক্রিয়া।
  2. একটি এক্সই এর উদ্দেশ্য হ'ল নিজস্ব একটি পৃথক অ্যাপ্লিকেশন চালু করা।

ডিএলএল

  1. একটি dll সর্বদা চালানোর জন্য একটি হোস্ট ই এক্স প্রয়োজন। অর্থাত্‍ এটি নিজের ঠিকানা স্থানে কখনও চলতে পারে না।
  2. ডিএলএলটির উদ্দেশ্য হ'ল পদ্ধতি / ক্লাসগুলির সংকলন রয়েছে যা অন্য কোনও অ্যাপ্লিকেশন থেকে পুনরায় ব্যবহার করা যেতে পারে।
  3. ডিএলএল হ'ল মাইক্রোসফ্ট একটি ভাগ করা লাইব্রেরি প্রয়োগ করে।

ডিএলএল এবং এক্সের ফাইল ফর্ম্যাটটি মূলত একই। উইন্ডোজ ফাইলে পিই শিরোলেখের মাধ্যমে ডিএলএল এবং এক্সই এর মধ্যে পার্থক্যটি স্বীকার করে। পিই শিরোলেখ বিশদ জন্য, আপনি এমএসডিএন এই নিবন্ধটি একবার দেখতে পারেন


4
সুতরাং, আপনি যদি চান যে আপনি নামকরণ করতে চান এবং ফাইকলের শিরোনামটি সম্পাদনা করে একটি ডেলকে একটি এক্সে এবং তার বিপরীতে পরিণত করতে পারেন?
আরসিআইএক্স

@ আরসিআইএক্স: আমার সন্দেহ কি সম্ভব?
ভুডোচিল্ড

এটি সম্ভবত সম্ভব নয় - নীচে কিচিকের উত্তর দেখুন।
জোনাথন রাইনহার্ট

32

পার্থক্যটি হ'ল কোনও EXE এর একটি এন্ট্রি পয়েন্ট থাকে, একটি "মূল" পদ্ধতি যা কার্যকর হয় run

একটি ডিএলএল এর মধ্যে কোডটি অন্য অ্যাপ্লিকেশন থেকে কল করা প্রয়োজন।


12
এটি ভুলভাবে লোড হচ্ছে, এটি সূচিত করে যে ডিএলএলগুলির প্রবেশ পয়েন্ট নেই। ডিএলএলগুলির একটি ডিএলএল মেইন এন্ট্রি পয়েন্ট থাকতে পারে যা ডেকে আনা হয় (যখন অন্যান্য জিনিসগুলির মধ্যে) ডিএলএল প্রক্রিয়াটিতে লোড হয়
jay.lee

29

আপনি উল্লেখ করতে পারেন কাঠামো সংক্রান্ত আরও কয়েকটি পার্থক্য রয়েছে।

  1. DLL এবং EXE উভয়ই একই ফাইল কাঠামো ভাগ করে - পোর্টেবল এক্সিকিউটেবল, বা পিই। দুজনের মধ্যে পার্থক্য করার জন্য, কেউ ভেতরের Characteristicsসদস্যকে দেখতে পারেন । একটি ডিএলএল এর জন্য এটিতে (0x2000) পতাকা চালু আছে। একটি EXE এর জন্য এটি (0x2) পতাকা।IMAGE_FILE_HEADERIMAGE_NT_HEADERSIMAGE_FILE_DLLIMAGE_FILE_EXECUTABLE_IMAGE
  2. পিই ফাইলগুলিতে কিছু শিরোনাম এবং কয়েকটি বিভাগ থাকে। কোডের জন্য সাধারণত একটি বিভাগ থাকে, উপাত্তের জন্য একটি বিভাগ, আমদানি করা ফাংশনগুলির তালিকাভুক্ত একটি বিভাগ এবং সংস্থানগুলির জন্য একটি বিভাগ থাকে। কিছু বিভাগে একাধিক জিনিস থাকতে পারে। শিরোনামটি বিভাগগুলিতে অবস্থিত ডেটা ডিরেক্টরিগুলির একটি তালিকাও বর্ণনা করে। এই ডেটা ডিরেক্টরিগুলি হ'ল যা উইন্ডোজকে পিইতে যা প্রয়োজন তা সন্ধান করতে সক্ষম করে। তবে এক ধরণের ডেটা ডিরেক্টরি যা কোনও এক্সই কখনই থাকতে পারে না (যদি না আপনি ফ্র্যাঙ্কেনস্টেইন এএসইই নির্মাণ করছেন) তবে তা রফতানি ডিরেক্টরি directory এই স্থানেই ডিএলএল ফাইলগুলির তাদের রফতানির ফাংশনগুলির একটি তালিকা রয়েছে এবং এটি অন্যান্য এক্সই বা ডিএলএল ফাইলগুলি ব্যবহার করতে পারে। অন্যদিকে, প্রতিটি ডিএলএল এবং এএসইইর একটি আমদানি ডিরেক্টরি থাকে যেখানে এটি চালানোর জন্য প্রয়োজনীয় ফাংশন এবং ডিএলএল ফাইল তালিকাভুক্ত করে।
  3. এছাড়াও পিই শিরোনামে ( IMAGE_OPTIONAL_HEADER) ImageBaseসদস্য হয়। এটি ভার্চুয়াল ঠিকানাটি নির্দিষ্ট করে যেখানে পিই অনুমান করে যে এটি লোড হবে। যদি এটি অন্য ঠিকানায় লোড করা হয় তবে কিছু পয়েন্টার ভুল স্মৃতিতে নির্দেশ করতে পারে। যেহেতু EXE ফাইলগুলি তাদের নতুন ঠিকানার জায়গায় লোড হওয়া প্রথমটির মধ্যে রয়েছে তাই উইন্ডোজ লোডার একটি ধ্রুবক লোড ঠিকানা নিশ্চিত করতে পারে এবং এটি সাধারণত 0x00400000। ডিএলএল-এর জন্য সেই বিলাসিতা নেই। একই প্রক্রিয়াতে লোড হওয়া দুটি ডিএলএল ফাইল একই ঠিকানার জন্য অনুরোধ করতে পারে। এই কারণেই কোনও ডিএলএলের বেস রিলোকেশন ডিরেক্টরি নামে একটি অন্য ডেটা ডিরেক্টরি রয়েছে যা সাধারণত নিজস্ব বিভাগে থাকে .reloc। এই ডিরেক্টরিতে ডিএলএলে স্থানগুলির একটি তালিকা রয়েছে যা পুনরায় বা প্যাচ করা দরকার যাতে তারা সঠিক স্মৃতিতে নির্দেশ করে। বেশিরভাগ EXE ফাইলগুলির এই ডিরেক্টরি নেই তবে কিছু পুরানো সংকলক এগুলি উত্পন্ন করে।

আপনি এমএসডিএন এই বিষয়ে আরও পড়তে পারেন ।


4
1. এটি পতাকা হিসাবে, উভয়ই একবারে সেট করা যায়। ২. যেমনটি আপনি বলেছেন, এটি সম্ভব তবে সম্ভাব্য নয়। ৩. এএসএলআর এক্সকেও স্থানান্তরিত করতে পারে, যদি তা পারে। হ্যাঁ, এমনকি কোনও এক্সেও স্থান পরিবর্তন করতে পারে। সব মিলিয়ে, ডিএলএল হ'ল এক্সইএসগুলি সম্ভব তবে বিরল
Deduplicator

22

এই উত্তরটি আমি যা ভেবেছিলাম তার চেয়ে কিছুটা বেশি বিশদ ছিল তবে এটি পড়েছি।

ডিএলএল:
বেশিরভাগ ক্ষেত্রেই, একটি ডিএলএল ফাইল একটি লাইব্রেরি হয় । বিভিন্ন ধরণের লাইব্রেরি রয়েছে, গতিশীল এবং স্থির - পার্থক্যটি সম্পর্কে পড়ুন । ডিএলএল ঘোরা গতিশীল লিংক গ্রন্থাগার যা আমাদের বলে যে এটি একটি এর অংশ প্রোগ্রামের কিন্তু না পুরো জিনিস। এটি পুনরায় ব্যবহারযোগ্য সফ্টওয়্যার উপাদান ( গ্রন্থাগার ) দিয়ে তৈরি যা আপনি একক প্রোগ্রামের চেয়ে বেশি ব্যবহার করতে পারেন । মনে রাখবেন যে কপিরাইট-পেস্ট ব্যবহার করে অনেক অ্যাপ্লিকেশনগুলিতে গ্রন্থাগার উত্স কোড ব্যবহার করা সর্বদা সম্ভব, তবে একটি ডিএলএল / স্ট্যাটিক লাইব্রেরির ধারণাটি হ'ল আপনি একটি লাইব্রেরির কোড আপডেট করতে এবং একই সাথে সমস্ত অ্যাপ্লিকেশন আপডেট করে ব্যবহার করতে পারেন এটি - সংকলন ছাড়াই

উদাহরণস্বরূপ:
কল্পনা করুন আপনি একটি বোতামের মতো একটি উইন্ডোজ জিইউআই উপাদান তৈরি করছেন । বেশিরভাগ ক্ষেত্রে আপনি আপনার লেখা কোডটি পুনরায় ব্যবহার করতে চান কারণ এটি একটি জটিল তবে একটি সাধারণ উপাদান - আপনি অনেক অ্যাপ্লিকেশন এটি ব্যবহার করতে চান তবে আপনি তাদের উত্স কোডটি দিতে চান না আপনি অনুলিপি করতে পারবেন না প্রতিটি প্রোগ্রামে বোতামের কোডটি পেস্ট করুন, যাতে আপনি সিদ্ধান্ত নেন যে আপনি একটি ডিএল-লাইব্রেরি (ডিএলএল) তৈরি করতে চান ।

এই "বোতাম" গ্রন্থাগার দ্বারা প্রয়োজন বোধ করা হয় EXE এর চালানোর জন্য cutables, এবং এটি ছাড়া তারা চলবে না, কারণ তারা বোতাম তৈরি করার পদ্ধতি জানি না, শুধুমাত্র কিভাবে এটা কথা বলতে।

তেমনি, একটি ডিএলএল কার্যকর করা যায় না - চালানো যায় কারণ এটি প্রোগ্রামের কেবল একটি অংশ তবে "প্রক্রিয়া" তৈরি করতে প্রয়োজনীয় তথ্য নেই ।

এক্সই:
এক্সিকিউটেবল হ'ল প্রোগ্রাম । এটি কীভাবে একটি প্রক্রিয়া তৈরি করতে হয় এবং কীভাবে ডিএলএলের সাথে কথা বলতে হয় তা জানে । একটি বোতাম তৈরি করার জন্য এটির ডিএলএল প্রয়োজন এবং এটি ছাড়া অ্যাপ্লিকেশনটি চালিত হয় না - ERROR।

আশাকরি এটা সাহায্য করবে....


.NET বিকাশ বিশ্বে আপনি যখন অন্যান্য মডিউল থেকে জিনিসগুলি আমদানি করেন, উদাহরণস্বরূপ, সি # তে using SomeClassFromALibrary, লাইব্রেরিটি কোনও ডিএলএল এর মাধ্যমে প্রকল্পের সাথে যুক্ত হয়? আমি সঠিকভাবে বুঝতে পারছি কিনা তা দেখার চেষ্টা করছি
আব্দুল

আপনি সাধারণত usingক্লাস নয়, নেমস্পেসের জন্য কীওয়ার্ডটি ব্যবহার করেন । ব্যতিক্রম using staticসি # 6 থেকে উপলভ্য যা নির্দিষ্ট ক্লাসে উপস্থিত সমস্ত স্থির সদস্যকে আমদানি করে ( লিঙ্ক )। usingশব্দ কম্পাইলার করার জন্য একটি অঙ্গীকার করা হয়েছে যে রানটাইম সেখানে যে সম্বলিত একটি গ্রন্থাগার হতে হবে দেয় নামস্থান । লাইব্রেরিটি সেই ডিএলএল দিয়ে প্রকল্পের সাথে সংযুক্ত নয়, ডিএলএল লাইব্রেরি যা প্রকল্পের (সমাবেশ) সাথে সংযুক্ত থাকে। সেই ডিএলএলে সমস্ত কোড রয়েছে যা সংকলনের সময় প্রতিশ্রুতি দেওয়া হয়েছিল।
দারিয়াস

17

ডিএলএল এবং এক্সই উভয়ই পোর্টেবল এক্সিকিউটেবল (পিই) ফর্ম্যাট

একটি ডায়নামিক-লিঙ্ক লাইব্রেরি (ডিএলএল) একটি লাইব্রেরি এবং তাই সরাসরি সম্পাদন করা যায় না। আপনি যদি এটি চালানোর চেষ্টা করেন তবে আপনি একটি অনুপস্থিত এন্টি পয়েন্ট সম্পর্কে একটি ত্রুটি পাবেন। মৃত্যুদন্ড কার্যকর করার জন্য এটিতে একটি এন্ট্রি পয়েন্ট (মূল ফাংশন) প্রয়োজন, সেই এন্ট্রি পয়েন্টটি কোনও অ্যাপ্লিকেশন বা এক্সি হতে পারে। ডিএলএল বাইন্ডিং রান-টাইমে ঘটে। এ কারণেই এর নাম "ডায়নামিক লিঙ্ক" লাইব্রেরি।

একটি সম্পাদনযোগ্য (EXE এর) একটি প্রোগ্রাম যা মৃত্যুদন্ড কার্যকর করা যেতে পারে। এটির নিজস্ব প্রবেশের স্থান রয়েছে। পিই শিরোলেখের অভ্যন্তরে একটি পতাকা নির্দেশ করে যে এটি কোন ধরণের ফাইল (ফাইল এক্সটেনশনের অপ্রাসঙ্গিক)। পিই শিরোনামের একটি ক্ষেত্র রয়েছে যেখানে প্রোগ্রামের প্রবেশের পয়েন্টটি থাকে। ডিএলএলগুলিতে এটি ব্যবহার করা হয় না (বা অন্তত কোনও এন্ট্রি পয়েন্ট হিসাবে নয়)।

শিরোনাম সম্পর্কিত তথ্য যাচাই করার জন্য অনেকগুলি সফ্টওয়্যার রয়েছে । উভয়কে আলাদাভাবে কাজ করার কারণ কেবলমাত্র তফাতটি নীচের চিত্রের মতো দেখানো হয়েছে the

শিরোনাম

এক্সই ফাইলটিতে কেবল একক প্রধান প্রবেশ থাকে মানে এটি বিচ্ছিন্ন অ্যাপ্লিকেশন, যখন কোনও সিস্টেম এক্সপি চালু করে, একটি নতুন প্রক্রিয়া তৈরি হয় যখন ডিএলএলগুলির অনেকগুলি এন্ট্রি পয়েন্ট থাকে তাই যখন অ্যাপ্লিকেশন এটি ব্যবহার করে কোনও নতুন প্রক্রিয়া শুরু না হয়, তখন ডিএলএল পুনরায় ব্যবহার এবং সংস্করণ করা যায়। ডিএলএল স্টোরেজ স্পেস হ্রাস করে কারণ বিভিন্ন প্রোগ্রাম একই ডিএল ব্যবহার করতে পারে।


4
আপনি বলতে "পি ই হেডার ভিতরে একটি পতাকা ইঙ্গিত ফাইল কোন ধরনের এটি (ফাইল এক্সটেনশনের অপ্রাসঙ্গিক) হল" --- সুতরাং যে মানে কিনা এক্সটেনশান .exeবা .dllকোন ব্যাপার না? এটি শিরোনামে এই পতাকাটি সত্যই তাদের আলাদা করে দেয় .... তাই আমি যদি exeজিইউআই মিথস্ক্রিয়াটির মাধ্যমে কোনও নাম তৈরি করি এবং নামটি রাখি .dllতবে সেই পতাকাটি ম্যানুয়ালি বদলানো, এটি এখনও চালানো যায় না?
আব্দুল

6

Dll v / s Exe

1) ডিএলএল ফাইল হ'ল ডায়নামিক লিঙ্ক লাইব্রেরি যা এক্স ফাইল এবং অন্যান্য ডিএল ফাইলগুলিতে ব্যবহার করা যেতে পারে।
এক্সই ফাইলটি একটি এক্সিকিউটেবল ফাইল যা ওএস দ্বারা পরিচালিত একটি পৃথক প্রক্রিয়াতে চলে।

2) ডিএলএলগুলি সরাসরি সম্পাদনযোগ্য নয়। এগুলি হ'ল পৃথক ফাইল যা ফাংশনযুক্ত যা প্রোগ্রাম এবং অন্যান্য ডিএলএল দ্বারা কম্পিউটার এবং ফাংশন সম্পাদন করতে ডাকে।
একটি এক্সই একটি প্রোগ্রাম যা কার্যকর করা যায়। উদাঃ উইন্ডোজ প্রোগ্রাম

3)
পুনরায় ব্যবহারযোগ্য ডিএলএল: এগুলি অন্য কিছু অ্যাপ্লিকেশনের জন্য পুনরায় ব্যবহার করা যেতে পারে। কোডার যতক্ষণ না ডিএলএল ফাইলের ফাংশন এবং পদ্ধতিগুলির নাম এবং প্যারামিটারগুলি জানে।
এক্সই: কেবল নির্দিষ্ট উদ্দেশ্যে।

৪) একটি ডিএলএল কলিং অ্যাপ্লিকেশনের একই প্রক্রিয়া এবং মেমরি স্পেস ভাগ করবে যখন কোনও
এক্সই তার পৃথক প্রক্রিয়া এবং মেমরির স্থান তৈরি করে।

5)
ডিএলএল ব্যবহার করে : আপনি এটি ব্যবহার করতে অনেক অ্যাপ্লিকেশন চান তবে আপনি তাদের উত্স কোডটি দিতে চান না আপনি প্রতিটি প্রোগ্রামের বোতামের কোডটি অনুলিপি করতে পারবেন না, তাই আপনি সিদ্ধান্ত নিন আপনি একটি ডিএল- তৈরি করতে চান গ্রন্থাগার (ডিএলএল)।

EXE: যখন আমরা উইন্ডোজ ফর্ম অ্যাপ্লিকেশনগুলি, কনসোল অ্যাপ্লিকেশনগুলি, ডাব্লুপিএফ অ্যাপ্লিকেশন এবং উইন্ডোজ পরিষেবাদির মতো প্রকল্প টেম্পলেটগুলির সাথে কাজ করি তারা সংকলিত হয়ে গেলে তারা একটি এক্সেল সমাবেশ জেনারেট করে।

)) সাদৃশ্য:
ডিএলএল এবং এএসইই উভয়ই বাইনারি ফাইলগুলির পোর্টেবল এক্সিকিউটেবল ফর্ম্যাট দ্বারা সংজ্ঞায়িত একটি জটিল নেস্টেড কাঠামো রয়েছে এবং এটি ব্যবহারকারীদের দ্বারা সম্পাদনযোগ্য করার উদ্দেশ্যে নয়।


4

দুটি জিনিস: এক্সটেনশন এবং ফাইলে সংরক্ষিত শিরোনামের পতাকা।

দুটি ফাইলই পিই ফাইল। উভয় ঠিক একই লেআউট ধারণ করে। একটি ডিএলএল একটি লাইব্রেরি এবং তাই কার্যকর করা যায় না। আপনি যদি এটি চালানোর চেষ্টা করেন তবে আপনি একটি অনুপস্থিত এন্ট্রি পয়েন্ট সম্পর্কে একটি ত্রুটি পাবেন। একটি এক্সই একটি প্রোগ্রাম যা কার্যকর করা যায়। এটিতে একটি এন্ট্রি পয়েন্ট রয়েছে। পিই শিরোলেখের অভ্যন্তরে একটি পতাকা নির্দেশ করে যে এটি কোন ফাইল টাইপ (ফাইল এক্সটেনশন সম্পর্কিত নয়)। পিই শিরোলেখের একটি ক্ষেত্র রয়েছে যেখানে প্রোগ্রামের প্রবেশের পয়েন্টটি থাকে। ডিএলএলগুলিতে এটি ব্যবহার করা হয় না (বা অন্তত কোনও এন্ট্রি পয়েন্ট হিসাবে নয়)।

একটি ছোট পার্থক্য হ'ল বেশিরভাগ ক্ষেত্রে ডিএলএলগুলির একটি রফতানি বিভাগ থাকে যেখানে প্রতীকগুলি রফতানি হয়। EXE গুলির কাছে কখনই রফতানি বিভাগ থাকা উচিত নয় কারণ তারা গ্রন্থাগার নয় তবে কিছুই এটিকে ঘটতে বাধা দেয়। Win32 লোডার কোনওভাবেই যত্ন করে না।

তা ছাড়া তারা অভিন্ন। সুতরাং, সংক্ষেপে, এক্সইগুলি এক্সিকিউটযোগ্য প্রোগ্রামগুলি হয় যখন ডিএলএলগুলি একটি প্রক্রিয়াতে লোড করা গ্রন্থাগার হয় এবং এতে সুরক্ষা, ডাটাবেস অ্যাক্সেস বা কোনও কিছুর মতো কার্যকর কার্যকারিতা থাকে।


4
+1: খুব কম লোকই বুঝতে পারে যে প্রযুক্তিগতভাবে, পার্থক্যটি কেবলমাত্র PE শিরোনামের মধ্যে এক বিট
সার্জ ওয়াটিয়ার

আমি অবাক হয়েছি যদি আপনি সেভাবে উত্তর দেন তবে একটি সাক্ষাত্কারে কী হবে। তাদের: "একটি ডিএলএল এবং একটি এক্সের মধ্যে পার্থক্য কী?" আপনি: "এক বিট"।
জেএমআই মেডিসন

3

.Exe প্রোগ্রাম। .Dll একটি লাইব্রেরি যা একটি .exe (বা অন্য কোনও .dll) কল করতে পারে।

সত্যজিগ্নেশ যা বলেন তা সত্য হতে পারে। এককটি অন্যটি ব্যবহার করতে পারে যেন এটি একটি গ্রন্থাগার ছিল, এবং এটি কিছু সিওএম উপাদান দিয়ে করা হয়েছে (উদাহরণস্বরূপ)। এই ক্ষেত্রে, "স্লেভ"। এক্স একটি পৃথক প্রোগ্রাম (কঠোরভাবে বলতে গেলে, একটি পৃথক প্রক্রিয়া - সম্ভবত একটি পৃথক মেশিনে চলছে) তবে এটি যা অন্যান্য প্রোগ্রাম / উপাদানগুলি / যাই হোক না কেন অনুরোধ গ্রহণ করে এবং পরিচালনা করে।

তবে, আপনি যদি আপনার প্রোগ্রাম ফাইলগুলির একটি ফোল্ডার থেকে কেবল একটি এলোমেলো .exe এবং .dll বাছাই করেন, তবে প্রতিক্রিয়াগুলি যে COM প্রাসঙ্গিক নয় - সেগুলি কেবল একটি প্রোগ্রাম এবং এটির গতিযুক্ত-সংযুক্ত লাইব্রেরি।

উইন 32 এপিআই ব্যবহার করে একটি প্রোগ্রাম লোডলিবারি এবং গেটপ্রোকএড্রেস এপিআই ফাংশন, আইআইআরসি ব্যবহার করে একটি ডিএলএল লোড এবং ব্যবহার করতে পারে। উইন 16 এ একই রকম ফাংশন ছিল।

সিওএম অনেকভাবেই ডিএলএল ধারণার বিবর্তন, মূলত ওএইএল 2 এর ভিত্তি হিসাবে স্বীকৃত, যেখানে নেট নেট সিওএমের বংশধর। ডিএলএলগুলি উইন্ডোজ 1, আইআইআরসি থেকে প্রায় রয়েছে। এগুলি মেমরির ব্যবহার হ্রাস করার জন্য একাধিক চলমান প্রোগ্রামের মধ্যে বাইনারি কোড (বিশেষত সিস্টেম এপিআই) ভাগ করার এক উপায় ছিল।


2

একটি এক্সইইএস নিয়মিত উইন 32 এক্সিকিউটেবল হিসাবে সিস্টেমে দৃশ্যমান। এর এন্ট্রি পয়েন্টটি একটি ছোট লোডারকে বোঝায় যা .NET রানটাইম আরম্ভ করে এবং এটি এক্সই-র অন্তর্ভুক্ত সমাবেশটি লোড করতে এবং চালিত করতে বলে। একটি ডিএলএল একটি উইন 32 ডিএলএল হিসাবে সিস্টেমে দৃশ্যমান তবে সম্ভবত কোনও প্রবেশের বিন্দু ছাড়াই। .NET রানটাইম তার নিজস্ব শিরোনামে থাকা সমাবেশ সম্পর্কে তথ্য সঞ্চয় করে।

dll হ'ল পুনরায় ব্যবহারযোগ্য ফাংশনগুলির একটি সংগ্রহ যেখানে একটি .exe একটি এক্সিকিউটেবল যা এই ফাংশনগুলিকে কল করতে পারে


4
.NET রানটাইমটির .exe বা .dll এর সাথে কোনও সম্পর্ক নেই, এগুলি বাইনারি মেশিন কোড ফাইলগুলি (যদি সেগুলি কিছু প্রোগ্রামিং ভাষায় উত্পাদিত হয় যা। নেট রানটাইম ব্যবহার করছে, তবে। নেট রানটাইম জড়িত, তবে এটি ইতিমধ্যে দায়বদ্ধ এক্সি কোড নিজেই, ওএস লোডার নয়)।
পেড 7 জি

1

একটি এক্সি এক্সিকিউটেবল প্রোগ্রাম যেখানে একটি ডিএলএল এমন একটি ফাইল যা প্রোগ্রামগুলি দ্বারা গতিশীলভাবে লোড এবং সম্পাদন করা যেতে পারে।


6
কেউ সম্ভবত অনুভব করেছেন যে আপনার উত্তরটি যথেষ্ট বিশদ নয়।
জেস্পের ই

হ্যাঁ, এক্সিকিউটেবল প্রোগ্রামটি কী তা লোকেরা জানেন না এবং এটি নিজেই একটি সম্পূর্ণ নতুন প্রশ্নে পরিণত হয়।
মাইন্ডলেস

1

Ex .exe এবং dll হ'ল সি # কোডের সংকলিত সংস্করণ যা এ্যাসেম্বলিস নামেও ডাকা হয়।

Ex .exe একা একা নির্বাহযোগ্য ফাইল, যার অর্থ এটি সরাসরি চালানো যেতে পারে exec

D। Dll একটি পুনরায় ব্যবহারযোগ্য উপাদান যা সরাসরি সম্পাদন করা যায় না এবং এটি কার্যকর করতে অন্যান্য প্রোগ্রামের প্রয়োজন হয় requires


0

ডিএলএল এবং এএসইইতে পার্থক্য:

1) ডিএলএল একটি ইন-প্রসেস উপাদান যা ক্লায়েন্ট প্রক্রিয়া হিসাবে একই মেমরি স্পেসে চলছে। EXE একটি আউট-প্রক্রিয়া উপাদান যা এর অর্থ এটি পৃথক পৃথক মেমরি স্পেসে চলে।

2) ডিএলএলে এমন ফাংশন এবং পদ্ধতি রয়েছে যা অন্যান্য প্রোগ্রামগুলি ব্যবহার করতে পারে (পুনর্বিবেচনার প্রসারণ করে) যখন এক্সই অন্যান্য প্রোগ্রামগুলির সাথে ভাগ করা যায় না।

3) ডিএলএল সরাসরি চালানো যায় না কারণ এগুলি লোড করা এবং অন্যান্য প্রোগ্রাম দ্বারা চালিত করার জন্য ডিজাইন করা হয়েছে। এক্সই একটি প্রোগ্রাম যা সরাসরি সম্পাদিত হয়।


0

সংক্ষিপ্ত উত্তর খুঁজছেন তাদের জন্য,

  • একটি এমন সমাবেশ একটি বর্গ লাইব্রেরি রূপে কম্পাইল এবং ব্যবহার করা অন্যান্য সমাহারকে ধরনের উপলব্ধ করা হয়, তাহলে এটি ifle এক্সটেনশন .dll(গতিশীল লিঙ্ক লাইব্রেরি), এবং এটি স্বতন্ত্র মৃত্যুদন্ড কার্যকর করা যাবে না।

  • তেমনিভাবে , যদি কোনও অ্যাসেম্বলিটি অ্যাপ্লিকেশন হিসাবে সংকলিত হয়, তবে এতে ফাইল এক্সটেনশন .exe(এক্সিকিউটেবল) রয়েছে এবং স্ট্যান্ডেলোন এক্সিকিউট করা যেতে পারে। .NET কোর 3.0 এর আগে, কনসোল অ্যাপ্লিকেশনগুলি .dll fles তে সংকলন করা হয়েছিল এবং ডটনেট রান কমান্ড বা একটি হোস্ট এক্সিকিউটেবল দ্বারা কার্যকর করা হয়েছিল। - উত্স


-2

ডিএলএল এবং এক্সইয়ের মধ্যে প্রধান সঠিক পার্থক্য যে ডিএলএল একটি এন্ট্রি পয়েন্ট পায় নি এবং এক্সই করেছে does আপনি যদি সি ++ এর সাথে পরিচিত হন তবে দেখতে পাবেন যে বিল্ড EXE এর মূল () প্রবেশের ফাংশন রয়েছে এবং ডিএলএল নেই :)


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.