2008-08-20 19 views
6

के लिए सीमा से बाहर है जब मेरी सी ++ नेट आवेदन संकलन मैं प्रकार के 104 चेतावनी मिलती है:चेतावनी C4341 - 'XX': मूल्य पर हस्ताक्षर किए enum निरंतर

Warning C4341 - 'XX': signed value is out of range for enum constant 

XX हो सकता है कहाँ

  • WCHAR
  • लंबी
  • बीआईटी
  • बायनरी
  • GUID
  • ...

मैं इन चेतावनियों जो कुछ भी मैं करता हूँ दूर करने के लिए नहीं कर पा रहे। जब मैं उन पर डबल क्लिक करता हूं तो यह मुझे मेरे कोड के एक हिस्से में ले जाता है जो ओडीबीसी पैरामीटर का उपयोग करता है - जब भी मैं अपने बाकी सामानों के साथ एक परीक्षण प्रोजेक्ट आज़माता हूं लेकिन कोई ओडीबीसी पैरामीटर यह चेतावनी नहीं देता है।

कोई विचार है कि मैं इन चेतावनियों से कैसे छुटकारा पा सकता हूं? वे कोड से वास्तविक चेतावनियां कर रहे हैं जिन्हें मैंने वास्तव में देखने के लिए कड़ी मेहनत की है - और यह मुझे एक भयानक भावना देता है कि मेरे ऐप में 104 चेतावनियां हैं!

उत्तर

4

यह एक compiler bug है । यहां another post की पुष्टि है कि यह एक ज्ञात समस्या है। मुझे अपनी परियोजनाओं में से एक में एक ही समस्या मिली है और इसे तब तक ट्रिगर होने से रोकने का कोई तरीका नहीं है जब तक कि आपके पास ओडीबीसी पैरामीटर के उपयोग से बचने का कोई तरीका न हो। केवल गाड़ी चेतावनी को दबाने के लिए सबसे रूढ़िवादी रास्ता

#pragma warning(push) 
#pragma warning(disable: 4341) 

// code affected by bug 

#pragma warning(pop) 
3

दृश्य स्टूडियो में आप हमेशा के लिए जा रहा द्वारा विशिष्ट चेतावनी निष्क्रिय कर सकते हैं:

परियोजना सेटिंग्स -> C/C++ -> उन्नत -> विशिष्ट चेतावनी को अक्षम करें: 4341

0

का उपयोग या तो एक संकलक ठीक के लिए इंतजार या #include कोड है कि यह चलाता है न किया जा सके।

[शायद आपको यह कहने का एक वर्बोज़ तरीका नहीं है।]

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