मैं वर्तमान में हमारे आवेदन बड़े पता जागरूकता बनाने की प्रक्रिया में हूं। जैसा कि अनुभव दिखाया गया है, ऐसा करने पर कुछ अप्रत्याशित गॉथस हैं। मैं इस पोस्ट को उन चरणों की पूरी सूची बनाने के लिए तैयार करता हूं जिन्हें लेने की आवश्यकता है।एप्लिकेशन को बड़ा पता पता करने के लिए क्या करना है?
विकास AMD Large Address Aware guide में सूचीबद्ध विचार एक अच्छा प्रारंभिक बिंदु प्रदान करते हैं लेकिन कोई भी पूर्ण तरह से कर रहे हैं:
निम्नलिखित कारणों से यह सुनिश्चित करें कि कोड 2GB से अधिक के पतों संभाल कर सकते हैं बनाने के लिए मदद मिलेगी:
- हस्ताक्षरित सूचक अंकगणितीय (आईई तुलना और जोड़) के उपयोग से बचें
- पॉइंटर्स सभी 32-बिट्स का उपयोग करते हैं। किसी और चीज़ के लिए बिट 31 का उपयोग न करें।
- कुछ डीएलएल केवल 2 जीबी सीमा के नीचे लोड किए जाएंगे। इस मामले में, वर्चुअलअलोक() के साथ लगातार कोई स्मृति आवंटित नहीं की जा सकती है।
- जब भी संभव हो, स्मृति आकार पुनर्प्राप्त करने के लिए GlobalMemoryStatusEx() (पसंदीदा) या GlobalMemoryStatus() का उपयोग करें।
इसलिए, सवाल यह है: चीजें हैं जो जब सी ++ Win32 देशी आवेदन बड़े पता वाकिफ करने के बाद किए जाने की आवश्यकता की पूरी सूची क्या है?
"सभी पॉइंटर घटकों को हटाएं" अत्यधिक देखें। एक सरणी के भीतर पॉइंटर्स पूरी तरह ठीक काम करते हैं। – MSalters
@ सुमा: सूचक जोड़ ठीक नहीं हैं, क्योंकि 'LARGEADDRESSAWARE' सेट होने पर पॉइंटर परिवर्धन ओवरफ़्लो हो सकता है। –
इसके अलावा: यहां चर्चा की गई तीसरे पक्ष के पुस्तकालयों के लिए देखें: http://stackoverflow.com/questions/2288728/ – Opmet