2013-09-10 8 views
5

का उपयोग कर स्थिर रूप से जुड़े msvcrt में अपवाद VS2012 के सांख्यिकीय रूप से जुड़े संस्करण में एक समस्या प्रतीत होती है। पुरानी प्रणाली पर एक कंसोल एप्लिकेशन शुरू करना अपवाद की ओर जाता है, जब भी स्ट्रीम का उपयोग किया जाता है, हालांकि नई प्रणालियों में कोई परेशानी नहीं होती है। विजुअल स्टूडियो 2012

  • को इस त्रुटि की यह पर्याप्त है पुन: पेश करने के लिए VS2012
  • में
  • मुख्य कार्य में लाइन std::ofstream f; या std::cout << "Hello World"; जोड़ने के लिए एक नया कंसोल आवेदन बनाने
  • v110_xp करने के लिए स्विच (fstream या iostream के रूप में आवश्यक शामिल हैं) टूलसेट (यदि Windows XP के लिए आवश्यक है)
  • स्थिर रूप से जुड़े पुस्तकालयों (/ MT)
  • पुराने सिस्टम पर exe प्रारंभ करें हमेशा एक छोड़कर है एन।

ऑफस्ट्रीम या कोउट के साथ लाइन को हटाने से समस्या हल हो जाती है। गतिशील रूप से जुड़े रनटाइम लाइब्रेरी (/ MD) पर स्विच करना हमेशा समस्या का समाधान करता है। स्पीड ऑप्टिमाइज़ेशन (/ ओ 2) के बजाय आकार अनुकूलन (/ ओ 1) या कोई ऑप्टिमाइज़ेशन (/ ओडी) का उपयोग करके, समस्या का समाधान नहीं किया।

क्या किसी के पास कोई विचार या संकेत है? अग्रिम में धन्यवाद।

+0

क्या आपने Windows XP पर डीबगर के तहत एप्लिकेशन को चलाने का प्रयास किया है, यह पता लगाने के लिए कि एक्सेस उल्लंघन कहां हो रहा है? यदि आपके पास Windows XP पर विजुअल स्टूडियो स्थापित नहीं है तो आप [रिमोट डीबगिंग] (http://msdn.microsoft.com/en-us/library/vstudio/y7f5zaaa.aspx) सेट अप कर सकते हैं। अपने सीआरटी कार्यान्वयन के लिए स्रोत कोड के साथ विजुअल स्टूडियो जहाजों। सुनिश्चित करें कि आप * वीसी ++ निर्देशिकाओं * में निर्देशिका जोड़ें। – IInspectable

+0

@IInspectable: रिमोट डीबगिंग के विचार के लिए धन्यवाद। मैं कोशिश करूँगा, लेकिन वीएस2012 और एक्सपी के साथ रिमोट डीबगिंग आसान नहीं है: [क्या मैं विजुअल स्टूडियो 2012 से .NET 4.0 ऐप डीबग करने के लिए विंडोज एक्सपी पर विजुअल स्टूडियो 2010 रिमोट डीबगर का उपयोग कर सकता हूं?] (Http: // stackoverflow .com/प्रश्न/14444055/कैन-आई-यूज-द-विज़ुअल-स्टूडियो-2010-रिमोट-डीबगर-ऑन-विंडोज-एक्सपी-टू-डीबग-ए-नेट -4) – user2766445

+0

@IInspectable: रिमोट डीबगिंग काम नहीं करती है विजुअल स्टूडियो 2012 और विंडोज एक्सपी के साथ। विजुअल स्टूडियो 2012 रिमोट डीबगर को "विंडोज़ का एक नया संस्करण" की आवश्यकता है। मैंने विजुअल स्टूडियो 2010 रिमोट डीबगर स्थापित करने की कोशिश की और विजुअल स्टूडियो 2012 से कनेक्ट करने का प्रयास किया - जो काम नहीं करता था। – user2766445

उत्तर

2

अपने आप से हल - मेरी पहली धारणा गलत था:

Visual Studio 2012SSE2 निर्देश का उपयोग करता डिफ़ॉल्ट द्वारा। इससे इंटेल पेंटियम III या एएमडी एथलॉन एक्सपी जैसे पुराने सिस्टम पर परेशानी होती है, जो एसएसई 2 का समर्थन नहीं करते हैं। एक अवैध निर्देश अपवाद फेंक दिया जाता है। आप /arch:IA32 कंपाइलर विकल्प का उपयोग कर एसएसई 2 स्विच कर सकते हैं।

गतिशील रूप से जुड़े एमएसवीआरआरटी ​​(डीएलएल) सभी मामलों में काम करता है, क्योंकि यह /arch संकलक विकल्प से प्रभावित नहीं होता है।

संबंधित मुद्दे