क्या 16bit DOS ऐप को 32bit में बदलने का कोई तरीका है?


2

क्या 16bit DOS ऐप को 32bit ऐप में बदलने का कोई तरीका है ताकि मैं 16383 सीमा से विवश न हो? या हो सकता है कि बिना रूपांतरण के 16bit ऐप को 32bit ऐप के रूप में चलाने का कोई तरीका हो?

मेरे पास प्रोग्राम का स्रोत कोड नहीं है इसलिए किसी भी तरह से इसका पुनर्निर्माण नहीं कर सकता।

धन्यवाद

जवाबों:


7

आप उन्हें परिवर्तित नहीं कर सकते। केवल अगर आपके पास स्रोत है तो आप उन्हें 32 बिट के रूप में फिर से जोड़ सकते हैं।


धन्यवाद, मुझे लगा कि ऐसा ही होगा, लेकिन यह सुनिश्चित करना चाहता था
डैनियल वार्डिन

3
इस मामले में recompiling सबसे अधिक संभवतः recoding शामिल होगी - एपीआई कॉल और हैंडल आदि को समायोजित करना .... इसलिए यह केवल बड़े चर होने की बात नहीं है
M.Bennett

1
सवाल उस बारे में स्पष्ट नहीं था, लेकिन फिर से शुरू करने का एकमात्र तरीका यह होगा, यहां मुद्दा सिर्फ वास्तुकला नहीं है, इसके चर प्रकार हैं। यहां तक ​​कि अगर वह इसे recompile किया है, यह अभी भी एक 'लघु' पूर्णांक के रूप में एक मानक पूर्णांक या एक लंबे पूर्णांक के विपरीत है।
जर्नीमैन गीक

5

गुड ओल्ड गेम्स जैसी सेवाएं आधुनिक सिस्टम पर वास्तव में पुराने गेम (पूर्व 16 बिट डॉस) बनाने के लिए डॉस निष्पादन योग्य और एक वर्चुअल मशीन को एक साथ पैकेज करने के लिए है ताकि गेम को लगता है कि यह डॉस में चल रहा है जबकि वीएम सभी अनुवाद करता है। निम्न स्तर की हार्डवेयर बातचीत जो डॉस गेम्स मानक विंडोज / मैक / लिनक्स ऑपरेटिंग सिस्टम कमांड में करती है।

आप आधुनिक हार्डवेयर पर विरासत अनुप्रयोगों को चलाने के लिए समान कर सकते हैं, जिससे नए OS को लगता है कि यह 32 बिट अनुप्रयोग चला रहा है; लेकिन सभी पुराने 16 बिट सिस्टम की सीमाएं बनी रहेंगी।


2
DosBox एक अच्छा प्रोग्राम है जो ज़रूरत को पूरा करता है। यह आपको 64 बिट गेम को आधुनिक 64 बिट सिस्टम पर चलाने देगा।
स्कॉट चेम्बरलेन

2

मैं 16383 की सीमा के अनुसार मान रहा हूं, इसका मतलब है कि एक चर का अधिकतम पूर्णांक आकार जो एक 16 बिट सॉफ़्टवेयर को संभाल सकता है (और जब से मैंने ऐसा किया है, तब तक मुझे ऐसा करना है)। चर प्रकार को बदले बिना ऐसा करने का कोई वास्तविक तरीका नहीं है - इस मामले में छोटे पूर्णांक से लेकर पूर्णांक तक।

मान लें कि हमारे पास एक जादुई सॉफ़्टवेयर है जो हमें 32 या 64 बिट सिस्टम की सभी विशेषताओं के साथ 16 बिट सॉफ़्टवेयर चलाने देता है - आप अधिक मेमोरी एक्सेस कर पाएंगे, लेकिन यह अभी भी 16 बिट, छोटा पूर्णांक चर है। आप कई उदाहरणों को चलाकर चीजों को गति दे सकते हैं। हालाँकि, आर्किटेक्चर को बदलकर एक छोटे पूर्णांक को लंबे पूर्णांक में बदल नहीं सकता है।

इसे ठीक करने के लिए सोर्स कोड (अच्छी तरह से) पर हैकिंग के बिना, बिल्कुल कोई रास्ता नहीं है। मुझे लगता है, यदि आप एक 1337 असंतुष्ट निंजा थे, तो आप एक असेंबलर चलाने में सक्षम हो सकते हैं, जहां यह चर है और इसे एक लंबे पूर्णांक में परिवर्तित कर सकते हैं। हालाँकि, इस बिंदु पर आप बेहतर काम कर रहे हैं कि सॉफ़्टवेयर का तर्क क्या है, और इसे फिर से लिखना।

स्रोत: C ++ हैडर प्रलेखन

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.