আমার কাছে একটি এক্সিকিউটেবল রয়েছে যা 32-বিট উইন্ডোতে চালিত হয়ে ঠিকঠাক কাজ করে তবে 64৪-বিট উইন্ডোতে চলাকালীন ব্রেক হয়।
64-বিট মেশিনে 32-বিট মোডে চালাতে বাধ্য করার কোনও উপায় আছে কি?
সোর্স কোডটিতে আমার অ্যাক্সেস নেই।
আমার কাছে একটি এক্সিকিউটেবল রয়েছে যা 32-বিট উইন্ডোতে চালিত হয়ে ঠিকঠাক কাজ করে তবে 64৪-বিট উইন্ডোতে চলাকালীন ব্রেক হয়।
64-বিট মেশিনে 32-বিট মোডে চালাতে বাধ্য করার কোনও উপায় আছে কি?
সোর্স কোডটিতে আমার অ্যাক্সেস নেই।
উত্তর:
আপনি কতটা প্রযুক্তিগত উত্তর চান? আপনি সম্ভবত কয়েকটি এসডিকে সরঞ্জামের সাহায্যে এপিএকে সর্বদা 32 বিট চালাতে বাধ্য করতে পারেন, তবে এটির জন্য একটু কাজ দরকার।
সহজ উত্তর হ'ল 32 বিট প্রক্রিয়া থেকে লঞ্চ করা (উদাহরণস্বরূপ %SystemRoot%\SYSWOW64\cmd.exeলঞ্চের ব্যবহার )।
আরও জটিলটি হ'ল এটি কী ধরণের এক্সে আছে তা যাচাই করা, তারপরে এটি নিজেই সংশোধন করুন। এখানে পটভূমিটি বুঝতে হবে যে উইন্ডোজ এপিআইয়ের সাথে সরাসরি কাজ করে এমন ভাষা থেকে সংকলিত কোডটি বিকাশকারী দ্বারা সংকলনের সময় 32 বিট বা 64 বিট হিসাবে তৈরি করা হয়। এটির পরে সোর্স কোডে না গিয়ে পরিবর্তন করা যাবে না।
তবে ক্রমবর্ধমান অ্যাপ্লিকেশনগুলি ভার্চুয়ালাইজেশন স্তর দ্বারা লিখিত হয় যা অ্যাপ্লিকেশনগুলি লেখার কাজকে সহজ করে তোলে। দুটি সাধারণ রয়েছে:। নেট এবং জাভা। সমস্যার সমাধানের জন্য সঠিক জাভা রানটাইম ইনস্টল করার জন্য জোর করা ব্যতীত আমি জাভা সম্পর্কে নিশ্চিত নই।
.NET এর জন্য আপনি এসডিকে সরঞ্জামগুলি এতে ব্যবহার করতে পারেন:
corflags myExe.exe। .NET সমাবেশের শিরোনামগুলি পড়ার জন্য .NET SDK- এর একটি ইউটিলিটি ব্যবহার করে, কোনও এক্সাইকের জন্য এমন কিছু ফিরে আসবে:সংস্করণ: v4.0.30319 সিএলআর শিরোনাম: 2.5 পিই: পিই 32 CorFlags: 0x20003 নিঃসঙ্গ: 1 32BITREQ: 0 32 বিটপ্রিফ: 1 স্বাক্ষরিত: 0
32BITREQআমাকে বলে এই হল AnyCPUকারণ 32bit প্রয়োজন হয় না।
corflagsতার /32BITREQ+বিকল্পটি ব্যবহার করুন ।%SystemRoot%\SYSWOW64\cmd.exeএবং এটি একইভাবে ব্যর্থ হয়েছিল - একটি ত্রুটি বার্তা প্রদর্শন করছে - এবং আমি যখন টাস্কম্যানেজারে চেক করি তখন আমার এক্সপি প্রক্রিয়া 32-বিট প্রক্রিয়া হিসাবে প্রদর্শিত হয় না
SYSWOW64\cmd.exeএখনও থেকে পরিচালিত কোনও এসিপিইউ এক্সই চালু করা এটিকে 64৪ -বিট প্রক্রিয়া হিসাবে চালিত করে (আমি এটি চেষ্টা করেছিলাম)।
আপনার যদি উইন্ডোজ 7 পেশাদার (বা উচ্চতর) থাকে তবে মাইক্রোসফ্ট থেকে ভার্চুয়াল এক্সপি মোডটি ব্যবহার করুন
এটি 32 বিট পরিবেশ অনুকরণ করে (?), এবং এটি কিছু পুরানো 16 বিট প্রোগ্রাম চালানোর জন্য কার্যকর প্রমাণিত হয়েছে
এটি সমন্বিত করার জন্য একটি সহজ উপায় আসলে (দীর্ঘমেয়াদী সমাধান নয়)।
"Corflags.exe" অ্যাপ্লিকেশনটি \ উইন্ডোজ \ সিস্টেম 32 ফোল্ডারে ফেলে দিন। প্রশাসক হিসাবে একটি কমান্ড লাইন খুলুন এবং টাইপ করুন ...
Corflags "উদাহরণের পথ এবং নাম" / 32BITPREF32 +
এটি অ্যাপ্লিকেশনটিকে 64-বিটের পরিবর্তে 32-বিট প্রক্রিয়া হিসাবে চালিত করতে বাধ্য করবে।