টি এল; ডিআর:
সংক্ষেপে বলা যায়, না, এটি প্রয়োজনীয় নয় ; তারা একটি একক ফোল্ডার ব্যবহার করতে পারে এবং না, উইন্ডোজ কোনও অবস্থান বা অন্য কোনও স্থান থেকে চালিত কোনও প্রোগ্রামের জন্য নিজেকে আলাদাভাবে উপস্থাপন করে না।
ঠিক আছে, প্রত্যেকেই এই বিষয়ে তাদের মতামত ফেলেছে বলে মনে হচ্ছে, তাই আমি আমার 2 ss এ টস করব ¢ মাইক্রোসফ্ট কেন প্রোগ্রামগুলির 32-বিট এবং 64-বিট সংস্করণগুলির জন্য পৃথক শীর্ষ স্তরের ফোল্ডার তৈরি করতে বেছে নিয়েছে তার কারণগুলির বিষয়ে অন্যরা ইতিমধ্যে অনুমান করেছেন , সুতরাং আমি সেই অংশটি ছেড়ে যাব (সর্বোত্তম কারণটি ডেভিডের ব্যাখ্যা ছিল যে এটি একটি হিসাবে রয়েছে প্রোগ্রামারদের জন্য সুবিধা)। অবশ্যই তারপরেও, এটি সরাসরি প্রশ্নের সরাসরি সমাধান করে না কেন এটি এমনকি প্রয়োজনীয় কেন? , যার উত্তর সম্ভবত অনুমান: এটি তা নয় ।
পরিবর্তে, আমি প্রশ্নের মূল অংশটি সম্বোধন করব
উইন্ডোজ কি কোনওভাবে "প্রোগ্রাম ফাইল (x86)" এর বাইরে চলমান একটি প্রোগ্রামের কাছে নিজেকে আলাদাভাবে উপস্থাপন করে?
আসলেই নয়, তবে প্রোগ্রামটির অবস্থান আচরণকে প্রভাবিত করতে পারে তবে আপনি যেভাবে ভাবেন সেভাবে নয়।
আপনি যখন কোনও প্রোগ্রাম পরিচালনা করেন, উইন্ডোজ একটি পরিবেশ সেট আপ করে যেখানে এটি চালানো হয় (মানে মেমরি, ঠিকানা ইত্যাদির নিরিখে কেবল পরিবেশের পরিবর্তনশীল নয়)। এই পরিবেশ নির্বাহযোগ্য (32-বিট এবং 64-বিট প্রোগ্রামগুলি অভ্যন্তরীণভাবে পৃথক হয়) এর সামগ্রীর উপর নির্ভর করে। আপনি যখন একটি -৪-বিট সিস্টেমে একটি 32-বিট প্রোগ্রাম চালান, এটি 32-বিট সাবসিস্টেমে চলে যা 32-বিট পরিবেশকে এমুলেট করে। এটা তোলে বলা হয় WoW64 (WoW64 ঘোরা উইন্ডোজ 64-বিট উইন্ডোজ ) এবং কি করে 16 বিট অ্যাপ্লিকেশন ব্যবহার করার এক্সপিতে পিরচািলত হেব অনুরূপ NTVDM ।
যখন আপনি সহ বা প্রশাসনিক বিশেষাধিকার ছাড়া একটি প্রোগ্রাম চালানো, এটা কিভাবে রান প্রভাবিত করে, কিন্তু অবস্থান করা উচিত এটা প্রভাবিত করে না (যদিও সেখানে উদাহরণস্বরূপ কিছু ড্রাইভার মত অবস্থান নির্ভরতা কিছু উদাহরণ)।
(আমি একটি পৃথক কম্পিউটার ব্যবহার করছি, তাই আমি আমার পদক্ষেপগুলি ব্যাকট্র্যাক করতে আমার ব্রাউজারের ইতিহাসের উপর নির্ভর করতে পারি না, তবে অন্য দিন এই এসইউ প্রশ্নের উত্তর দেওয়ার সময় আমি এই এসও প্রশ্নের উত্তর শেষ করেছিলাম যা আমাকে গুগল প্রোসেসর_আর্কটিউইউ 64৪64২২ এ নিয়েছিল যা এই এসও প্রশ্নের দিকে পরিচালিত করে এবং এই মাইক্রোসফ্ট ব্লগ পোস্ট ।)
কোথাও কোথাও, আমি পরিবেশবাদী ভেরিয়েবলটি %processor_architecutre%
আপনি কোথায় থেকে কমান্ড-প্রম্পটটি চালাবেন তার উপর নির্ভর করে কীভাবে বিভিন্ন ফলাফল দেয় সে সম্পর্কে একটি স্ট্যাকওভারফ্লো পোস্ট পড়েছি (আমি সঠিক উদ্ধৃতিটি সন্ধান করার চেষ্টা করব)।
কমান্ড প্রম্পটের 32-বিট বা -৪-বিট সংস্করণটি চালিত হয়েছিল (যেমন, System32\
বা এর থেকে SysWoW64\
) উত্তরটি প্রমাণিত হয়েছিল । অন্য কথায়, অবস্থানটি প্রোগ্রামটির আচরণকে প্রভাবিত করে বলে মনে হচ্ছে , এটি কেবলমাত্র প্রোগ্রামের বিভিন্ন সংস্করণ রয়েছে বলেই নয়, উইন্ডোজ একটি বিশেষ উপায়ে ফোল্ডারটির সাথে আচরণ করে।
এটি বোঝা যায় কারণ এক্সিকিউটেবল ফাইলের বিষয়বস্তু এটি 32-বিট বা -৪-বিট কিনা তা নির্ধারণ করে, সুতরাং আপনি একই ফোল্ডারে একই প্রোগ্রামের (যেমন, foobar32.exe
এবং foobar64.exe
) একটি 32-বিট এবং 64-বিট উভয়ই রাখতে পারেন এবং যখন আপনি এগুলিকে এক্সিকিউট করুন, এগুলি সঠিকভাবে লোড হবে (bit৪-বিট সংস্করণটি নেটিভালি চালানো হবে এবং ৩২-বিট সংস্করণটি ওয়ার্ল্ড 6464 এমুলেশন লেয়ারে চালানো হবে)।
FreePascal আপনি উভয় ডস এবং Windows সংস্করণ ইনস্টল করার অনুমতি দেয় এবং তারা একই ফোল্ডারে যান: %programfiles%\FreePascal
। এটা তোলে এক্সিকিউটেবল ফাইল (রেখে বিভিন্ন আর্কিটেকচারের পরিচালনা করে .exe
, .sys
, .dll
, .ovr
, ইত্যাদি) আলাদা ফোল্ডারে এবং, উৎস-ফাইল, ইত্যাদি) কোন প্রযুক্তিগত কারণে যে এই 32- এবং জন্য সম্পন্ন করা পারে ছবি মত রিসোর্স ফাইল শেয়ারিং একটি প্রোগ্রামের 64-বিট সংস্করণ। ডেভিড যেমন বলেছিলেন, প্রোগ্রামারকে এগুলি পৃথক রাখা হলে (যেমন, ভেরিয়েবল ব্যবহার করে এটি দেখতে কেবল ফাইলগুলির একটি সেট রয়েছে, ইত্যাদি দেখতে এটি সহজ) is