2013-12-07 3 views
38

_sleep या strncpy जैसे फ़ंक्शंस का उपयोग करके विजुअल स्टूडियो के पिछले संस्करणों में केवल एक चेतावनी आउटपुट करता है। नवीनतम संस्करण में, यह अचानक एक त्रुटि है:सी 4 9 6 9 पर विजुअल स्टूडियो 2013 त्रुटि क्यों है?

unexpected error

मैं जानता हूँ कि मैं कोड की शुरुआत में #pragma warning(disable: 4996) जोड़कर अक्षम कर सकते हैं, लेकिन यह अत्यंत कष्टप्रद है कि वी.एस. मुझे अन्य कार्यों का उपयोग करने के लिए मजबूर करने की कोशिश कर रहा है । क्या इस व्यवहार को अक्षम करने का कोई तरीका है?

इससे पहले कि आप पूछें, "त्रुटियों के रूप में चेतावनियों का इलाज करें" अक्षम है, और यह त्रुटियों को भी बंद कर देता है, भले ही मैं सभी चेतावनियों को बंद कर दूं!

+0

संभावित डुप्लिकेट [विजुअल स्टूडियो 2013 में sqlite.c संकलित करते समय त्रुटि C4996 प्राप्त हुआ] (http://stackoverflow.com/questions/20031597/error-c4996-received-when-compiling-sqlite-c-in-visual -स्टूडियो -2013) – dns

+0

आप एक [stdext :: check_array_iterator] (http://stackoverflow.com/questions/3598257/visual-c-how-is-checked-array-iterator-useful) का भी उपयोग कर सकते हैं, लेकिन ऐसा लगता है गैर मानक होने के लिए। – jliv902

उत्तर

54

स्पष्ट रूप से नई परियोजनाएं डिफ़ॉल्ट रूप से "एसडीके चेक" सक्षम करती हैं, जो इन चेतावनियों को त्रुटियों के रूप में मानती है। इसे अक्षम करने के लिए, प्रोजेक्ट गुणों पर जाएं -> कॉन्फ़िगरेशन गुण -> सी/सी ++ -> सामान्य -> ​​एसडीएल चेक -> सं।

+1

एसडीएल चेक को अक्षम करने से कुछ बहिष्कृत विंडोज एपीआई फ़ंक्शंस के लिए चेतावनी ठीक नहीं हुई है, जैसे कि ['GetVersionEx'] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms724451.aspx)। विशेष रूप से उनको ठीक करने के लिए चेतावनी 4996 को अक्षम करना पड़ा। –

4

आप सी/सी ++> उन्नत> विशिष्ट चेतावनियों को अक्षम करने में विशिष्ट चेतावनी संख्या भी अक्षम कर सकते हैं।

0

परियोजना -> प्रोजेक्ट गुण -> विन्यास गुण -> C/C++ -> प्रीप्रोसेसर -> प्रीप्रोसेसर परिभाषाएं -> संपादित करें ... पंक्ति जोड़ें _CRT_SECURE_NO_WARNINGS

0

सभी स्रोतों मैं कहा जाता है संकलन:

Remove secure warnings (_CRT_SECURE_NO_WARNINGS) from projects by default in Visual Studio पर How to use use _CRT_SECURE_NO_WARNINGS

वीडियो कि मेरी समस्या हल

kmcnamee का जवाब। https://www.youtube.com/watch?v=qWxGZLjwKL0

जाहिर है, सुरक्षा डेवलपमेंट लाइफ साइकल (SDL) के चेकों जो अतिरिक्त सुरक्षित कोड पीढ़ी सुविधाओं और त्रुटियों के रूप में अतिरिक्त सुरक्षा प्रासंगिक चेतावनी को सक्षम करने में शामिल की सिफारिश की।

इस समस्या को हल करने के लिए कदम हैं:

1. Go to Project-> "your project name" Properties 
2. Under Configuration Properties, go to C/C++ 
3. Under C/C++, go to Preprocessor 
4. Select Preprocessor Definitions and click on Edit from the dropdown menu 
5. In the blank space fill out _CRT_SECURE_NO_WARNINGS 
0

कार्यक्रम की शुरुआत में दर्ज करें:

#pragma warning(disable : 4996) 

और बस इतना ही।

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