मैं Win7 32 बिट ओएस में एक डॉस/4 जीडब्ल्यू एप्लिकेशन चलाने की कोशिश कर रहा हूं। मुझे निम्न त्रुटि संदेश मिल रहा है, DOS/4GW fatal error (1307): not enough memory

जब मैं WinXP 32 बिट ओएस में एक ही एप्लिकेशन चलाता हूं, तो यह ठीक काम करता है और कोई समस्या नहीं होती है।

डॉस / 4 जीडब्ल्यू एप्लिकेशन वाटकॉम सी कंपाइलर का उपयोग करके बनाया गया था।

मेम कमांड निम्नलिखित उपलब्ध मेमोरी दिखाता है,

655360 bytes total conventional memory 655360 bytes available to MS-DOS 580640 largest executable program size 16777216 bytes total EMS memory 16777216 bytes free EMS memory 32505856 bytes total contiguous extended memory 0 bytes available contiguous extended memory 15580160 bytes available XMS memory MS-DOS resident in High Memory Area

ऊपर से साफ है कि मेमोरी 1MB से कम की है. हालाँकि मेरे कार्यक्रम को इससे अधिक की आवश्यकता है। मूल रूप से मुझे अपने डॉस/4 जीडब्ल्यू एप्लिकेशन को चलाने के लिए 1 एमबी से अधिक मेमोरी प्राप्त करने के लिए अपनी डॉस मेमोरी का विस्तार करने की आवश्यकता है।

क्या कोई इस स्मृति समस्या को हल करने में मदद कर सकता है?

धन्यवाद!

-आनंद

1
Anand 17 फरवरी 2017, 19:41

1 उत्तर

इतिहास में खो जाने से पहले, मैं क्यों को संरक्षित करने में मदद करना चाहता हूं।

लघु संस्करण: टूटे हुए डॉस विस्तारकों ने 16-बिट हस्ताक्षरित पूर्णांकों का उपयोग किया। 32,768 बाइट्स (32 एमबी) से बड़ी कोई भी चीज उन्हें विफल कर देगी।


थॉमस आर। अच्छी तरह से 2007 में एक पोस्ट था जो समस्या को इंगित करता है:

Windows Vista गैर-Win32 ऐप्स को 32 एमबी मेमोरी तक सीमित करता है (संग्रह)

और फिर 2010 की एक यूज़नेट पोस्ट है जो याद दिलाती है< /a> हमें कि DPMI के लिए उपलब्ध मेमोरी की मात्रा को सीमित करने वाला एक ऑपरेटिंग सिस्टम:


मैं हाल ही में Windows Vista's पर थॉमस आर. नीसली के WWW पृष्ठ पर आया हूं डीपीएमआई सर्वर। यह काफी भ्रमित है। (इन लोगों में कुछ हैं एम. नाइसली के पेज के मामले में काफी समझदार बातें हैं।) And कोई आश्चर्य नहीं कि यह है, अगर इस तरह आपने एम को चीजें समझाईं। ठीक है, जैसा कि xe का दावा है कि आपने किया। (-:

तथ्य की बात के रूप में, यह DPMI सर्वर सीमा बिंदु में एक और मामला है। एम। अच्छी तरह से इसे किसी प्रकार की रहस्यमय साजिश के रूप में प्रस्तुत करता है जीसीसी वास्तव में, जैसा कि एम। बवाकाज़ ने बताया, यह सरल बचाव है उन सभी बेवकूफी भरी और टूटी-फूटी चीजों के खिलाफ जो DPMI- आधारित विस्तारित हैं डॉस अनुप्रयोगों को करने के लिए जाना जाता है, जैसे कि सभी मेमोरी आवंटित करना जो प्रोग्राम स्टार्टअप पर उपलब्ध है, क्योंकि वे बुरी तरह से लिखे गए हैं। एम. बवाकाज़ रेमंड चेन के एक लेख की ओर इशारा करते हैं कि कोई भी इसे समझना चाहते हैं तो इसे पढ़ना चाहिए।

यह DpmiLimit सेटिंग जिसका आपने उल्लेख किया है, वास्तव में कोई नई बात नहीं है। यह विंडोज एनटी 6 पर बस अदस्तावेजीकृत है। ओएस/2 वीडीएम के पास एक लगभग दो दशकों के लिए दस्तावेज DPMI स्मृति सीमा सेटिंग। सेटिंग DPMI_MEMORY_LIMIT है। आप यूज़नेट और WWW पर पढ़ सकते हैं इसके बारे में सैकड़ों चर्चाएँ, लगभग 1994 में वापस जा रही हैं, और इसे ऊपर और नीचे ट्विक करने के कारण। OS/2 सिस्टम पर कोई भी खोल सकता है एक VDM सेटिंग नोटबुक बनाएं, और इसका वर्णन करने के लिए ऑनलाइन सहायता प्राप्त करें स्थापना।

रेमंड चेन कुछ विशेष अपराधियों के रूप में डॉस गेम्स को अलग करता है जब DPMI का दुरुपयोग करने की बात आती है, और चलाने के लिए एक संपूर्ण FAQ है OS/2 के अंतर्गत डॉस गेम जो विभिन्न विभिन्न को सूचीबद्ध करता है DPMI_MEMORY_LIMIT (और अन्य) ऐसे गेम खेलने के लिए सेटिंग ऑपरेटिंग सिस्टम के साथ अच्छी तरह से और अनावश्यक रूप से मेमोरी को चबाना नहीं, सिर्फ इसलिए कि वीडीएम में डीपीएमआई सर्वर अन्यथा उन्हें अनुमति देगा।

फिर से, NTVDM बिल्कुल भी "अजीब" नहीं है। यह लागू कर रहा है a सेटिंग, और एक सीमा, जो वर्चुअल डॉस में पाठ्यक्रम के लिए समान है मशीनें। यहां तक ​​कि 32MiB का डिफॉल्ट भी असामान्य नहीं है। के लिए डिफ़ॉल्ट DPMI_MEMORY_LIMIT OS/2 VDM में था (OS/2 के हाल के संस्करणों में, if मेमोरी सर्व करता है) 64MiB। यदि आप रेमंड चेन के सभी लेख पढ़ते हैं अंत तक, यहां तक ​​कि क्यों की व्याख्या भी है कि ऐसे मूल्य हैं डिफ़ॉल्ट: यह टूटे हुए विस्तारित डॉस प्रोग्राम से निपटने के लिए है कि 16-बिट पूर्णांकों का उपयोग करके KiB में उपलब्ध DPMI मेमोरी को मापें। (एनटीवीडीएम के डिफ़ॉल्ट रूप से हस्ताक्षरित 16-बिट पूर्णांक मानता है। OS/2 का VDM डिफ़ॉल्ट मानता है अहस्ताक्षरित 16-बिट पूर्णांक।)

ये सभी चीजें - चाहे वे वीडीएम के अंदर से वीएम मॉनिटर में फंस जाएं, या डीपीएमआई सर्वर खराब तरीके से लिखे गए डॉस प्रोग्राम को नियंत्रित करने के लिए सीमित हैं - एनटीवीडीएम "अजीब" या असामान्य नहीं हैं, या माइक्रोसॉफ्ट द्वारा उन लोगों के खिलाफ गुप्त साजिशें हैं जो सोचते हैं कि संकलन जीसीसी के साथ इसका मतलब है कि कोई विस्तारित डॉस प्रोग्राम संकलित कर रहा है। वे वीडीएम के लिए सरल लंबे समय तक चलने वाले अभ्यास हैं, और वर्चुअल मशीन तकनीक के लिए रन-ऑफ-द-मिल सामान हैं जो दशकों से पीछे हैं।

0
Ian Boyd 28 मई 2018, 17:55