9

में अप्रयुक्त विशेषताओं/विधियों को कैसे खोजें Visual C++ 2008 Professional में अप्रयुक्त विशेषताओं/विधियों की पहचान करने का कोई तरीका है? यदि डिफ़ॉल्ट रूप से यह संभव नहीं है, तो तृतीय-पक्ष टूल की अनुशंसाओं की भी सराहना की जाती है।विजुअल सी ++ 2008

धन्यवाद,
फ्लोरियन

संपादित करें: nDepend केवल .NET विधानसभाओं के लिए काम करता है। मैं ऐसा कुछ ढूंढ रहा हूं जिसका उपयोग देशी सी ++ अनुप्रयोगों के साथ किया जा सके।

उत्तर

6

PC-Lint आज़माएं। अनावश्यक कोड खोजने में यह बहुत अच्छा है। मैंने अभी तक संस्करण 9 की कोशिश नहीं की है। संस्करण 8 को कॉन्फ़िगर करने में कुछ समय लगता है। ऑनलाइन इंटरैक्टिव डेमो आज़माएं।

+0

यह वही है जो मैं खोज रहा हूं। विजुअल स्टूडियो के लिए विजुअललिंट एडिन है जो पीसी-लिंट को एकीकृत करता है।एक कम महंगा समाधान ठीक रहा होगा, लेकिन ऐसा लगता है कि वहां कुछ भी नहीं है। – fhe

-2

nDepend यह आपके घर की सफाई और कुत्ते को चलने के साथ-साथ करेगा। एक nagware संस्करण मुफ्त में उपलब्ध है।

निम्नलिखित कोड क्वेरी भाषा बयान आप अप्रयुक्त तरीकों

WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE MethodCa == 0 AND 
    !IsPublic AND !IsEntryPoint AND !IsExplicitInterfaceImpl AND 
    !IsClassConstructor AND !IsFinalizer 
+1

धन्यवाद, लेकिन nDepend केवल .NET असेंबली के साथ काम करता प्रतीत होता है। – fhe

0

मैं व्यक्तिगत रूप से उनकी उत्पादकता टूल इस्तेमाल नहीं किया है (मैं उनकी खिड़कियों नियंत्रण सूट का उपयोग करें), लेकिन ऐसा लगता DevExpress की तरह एक सी है ++ की एक सूची मिल जाएगा refactor'er Refactor! for C++ कहा जाता है। मैंने उन सुविधाओं को तुरंत नहीं देखा जिन्हें आप ढूंढ रहे हैं, लेकिन हो सकता है कि उनके पास यह हो?

0

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

भले ही उन्हें नहीं करना है, वे अक्सर सुरक्षा के लिए मौजूद हैं। उदाहरण के लिए, एक निजी प्रति कन्स्ट्रक्टर घोषित करने से किसी ऑब्जेक्ट को अनपेक्षित प्रतिलिपि से रोका जा सकता है। निजी घोषणा के बिना, संकलक आपके लिए एक सार्वजनिक, सदस्यवार प्रतिलिपि ctor परिभाषित करेगा। अब, क्या यह "अप्रयुक्त" है और क्या आप उनके बारे में चेतावनी देना चाहते हैं?

0

कवरेज वैलिडेटर अप्रयुक्त सी ++ कोड (लेकिन विशेषता नहीं) दिखा सकता है। यह गतिशील रूप से करता है इसलिए आपको परिणाम प्राप्त करने के लिए ऐप को 'एक्सर्सराइज' करना होगा: http://successfulsoftware.net/2008/03/10/coverage-validator/

0

पीसी-लिंट बहुत शक्तिशाली है, लेकिन दुबला होना मुश्किल है। बेशक यह अच्छी तरह से सी और सी ++ का वर्णन करता है?

एक और टूल जो मुझे लगता है वह उत्कृष्ट है पूरे टमाटर का विजुअल असिस्ट एक्स जो आईडीई में सही एकीकृत करता है।

असुरक्षित कोड की खोज करते समय सी ++ में कुछ बड़े गठजोड़ हैं: टेम्पलेट्स, कॉलबैक, और संदेश हैंडलर आपके प्रोजेक्ट के लिए महत्वपूर्ण हो सकते हैं लेकिन कभी भी सीधे नहीं कहा जाता है। उदाहरण के लिए, थ्रेड के लिए हैंडलर को सीधे नहीं कहा जाता है, लेकिन जब आप एक नया धागा बनाते हैं तो पैरामीटर होता है। एमएफसी या डब्ल्यूटीएल परियोजनाओं में "ऑन_बटनटन" टाइप संदेश भी अन-कॉल किए गए तरीकों के रूप में दिखाई देंगे।

एक बार जब आप उन्हें पाते हैं तो आप इन्हें अनदेखा करने के लिए पीसी-लिंट को कॉन्फ़िगर कर सकते हैं, लेकिन पहली बार इसके बहुत सारे काम के माध्यम से।

+4

क्या आप विस्तारित कर सकते हैं कि विजुअल असिस्ट एक्स अप्रयुक्त कोड खोजने में कैसे मदद करता है? –

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