मुझे यकीन नहीं है कि हर कोई मानक पुस्तकालय
का उपयोग करने के खिलाफ क्यों सलाह दे रहा है। यह विधि मानती है कि आप चाहते हैं कि आपका कोड विंडोज 2000 या बाद में चलाना पड़े और Win 9x के लिए समर्थन खोने में कोई फर्क नहीं पड़ता। आप अभी भी सी/सी ++ मानक लाइब्रेरी का उपयोग कर सकते हैं - आप अपने प्रोजेक्ट के सी/सी ++ कोड जेनरेशन पेजों में /MT
विकल्प का उपयोग कर सकते हैं, जो मानक लाइब्रेरी में स्थिर रूप से लिंक होगा।
हालांकि, दो नोट्स, मेरे पहले से पहले: गतिशील रूप से जुड़ी मानक लाइब्रेरी रखने का विचार यह है कि इसमें कोई भी बग विंडोज अपडेट (सिद्धांत रूप में) द्वारा पैच किया जाएगा। यदि आप लाइब्रेरी को स्थिर रूप से लिंक करते हैं, तो आपको मानक लाइब्रेरी बग को ठीक करने के लिए अपने एप्लिकेशन को फिर से वितरित करने की आवश्यकता है। तो यह सलाह नहीं दी जाती है।
दूसरे, MSDN लेख से compiler options पर:
सावधानी स्थिर मिश्रण और रन-टाइम पुस्तकालयों के गतिशील संस्करणों न करें। प्रक्रिया में रन-टाइम लाइब्रेरीज़ की एक से अधिक प्रति समस्याएं पैदा कर सकती हैं, क्योंकि एक प्रतिलिपि में स्थिर डेटा अन्य प्रतिलिपि के साथ साझा नहीं किया जाता है। लिंकर को एक स्थिर और गतिशील संस्करणों को एक .exe फ़ाइल, के साथ जोड़ने से रोकता है लेकिन आप अभी भी रन-टाइम लाइब्रेरीज़ की दो (या और) प्रतियों के साथ समाप्त हो सकते हैं। उदाहरण के लिए, रन-टाइम लाइब्रेरी के स्थिर (गैर-डीएलएल) संस्करणों से जुड़े एक गतिशील-लिंकलाइब्रेरी का उपयोग एक .exe फ़ाइल के साथ किया गया था जो डायनामिक (डीएलएल) संस्करण के साथ जुड़ा हुआ था। रन-टाइम पुस्तकालय। (आप भी से बचने के एक प्रक्रिया में डिबग और गैर डिबग पुस्तकालयों के संस्करणों मिश्रण चाहिए।)
संक्षेप में, ऐसा करने से भ्रम की स्थिति पैदा करता है, तो आप अन्य एक गतिशील के खिलाफ जुड़ा हुआ घटकों में निर्माण करने के लिए कोशिश कर सकते हैं -लिंक मानक पुस्तकालय।
बेशक, दूसरा नकारात्मक यह है कि यह आपके निष्पादन योग्य को भी बड़ा कर देगा।
संपादित करें: परिणाम, depend.exe के तहत, ऐसा लगता है: (बेशक, मैं 64-बिट विंडोज का उपयोग कर रहा हूं, जो केवल एक्सपी के लिए उपलब्ध है और बाद में ... यदि आप जानना चाहते हैं कि यह क्या दिखता है 32-बिट विंडोज़ की तरह, कल्पना करें कि 64
एस वहां नहीं थे!)।
स्रोत
2011-01-25 01:35:37
+1 यह एक अच्छा SO प्रश्न का प्रतीक है। –
यदि मैं पूछूं तो इस कार्यक्रम का उद्देश्य क्या है? –
मैं 64 बिट प्रक्रिया से 32 बिट प्रक्रिया में कोड इंजेक्शन लागू कर रहा हूं, और मुझे कुछ कार्यों के पते को खोजने के लिए सहायक 32 बिट प्रोग्राम की आवश्यकता है। – DxCK