c++ - विंडोज एक्सई/डीएलएल: एक "पैक की गई छवि" क्या है



windows process (1)

एक "पैक की गई छवि" एक है जहां एक निष्पादन योग्य कोड को फ़ाइल को छोटा करने के इरादे से संकुचित किया गया है। ठेठ फाइल आकार में कमी 50% के आसपास है। यह निष्पादित करने से पहले डेटा को निष्पादन योग्य कोड पर वापस विभाजित करने के लिए रनटाइम पर "लोडर" का उपयोग करता है सीमित डिस्क भंडारण क्षमता और सीमित नेटवर्क बैंडविड्थ के साथ पुराने दिनों में यह उपयोगी था।

आज टेराबाइट डिस्क और मेगाबिट नेटवर्क के साथ यह गंध है, दुर्भावनापूर्ण कोड छिपाने के लिए पैकिंग का भी उपयोग किया जा सकता है। निश्चित रूप से कारण यह है कि प्रोसेस एक्सप्लोरर इसे अलग तरीके से बदलता है।

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

और हाँ, जब आप / ZI का उपयोग करते हैं तो इसमें बहुत कुछ होगा। अधिक महत्वपूर्ण है लिंकर / अन्तराल विकल्प, जब आप / जेडआई का उपयोग करते हैं तो स्वचालित रूप से चालू होता है जो आपको डिबगिंग करते समय कोड लिखने की अनुमति देता है, संपादित करें + जारी रखें विकल्प और जल्दी से फ़ाइल को फिर से जनरेट करने वाले लिंकर के बिना निष्पादन योग्य फ़ाइल को पुनः लिंक करें। यह केवल तब ही काम कर सकता है जब निष्पादन योग्य फ़ाइल में बहुत खाली जगह है, नई मशीन कोड बाइट जोड़ने के लिए उपलब्ध है। यह एक ब्लू फ्लैग है

निश्चित रूप से कोई वास्तविक चिंता नहीं है, आपका उपयोगकर्ता केवल आपके प्रोग्राम का रिलीज़ बिल्ड ही देखेगा। जो / बिना और बिना / बिना / बिना इंक का निर्माण किया गया है।

प्रक्रिया एक्सप्लोरर कभी-कभी "पैक छवि" के रूप में एक EXE दिखाता है, लेकिन इसका क्या मतलब है।

मैंने जो पता लगाया है: एक पैक छवि में /ZI विकल्प के परिणाम के साथ एक exe (Visual C ++ 2010) का उपयोग करना, लेकिन /Zi नहीं करता है ऐसा क्यों अंतर?

बीटीडब्ल्यू: /ZI साथ संकलित एक डीएलएल को "पैक की गई छवि" माना जाता है और बैंगनी को चिह्नित किया जाता है





process