有沒有方法在Visual C++ 2008 Professional中識別未使用的屬性/方法?如果默認情況下不可行,第三方工具的建議也非常感謝。如何在Visual C++ 2008中查找未使用的屬性/方法
感謝,
弗洛裏安
編輯: NDepend的僅適用於.NET程序集。我正在尋找可以用於本機C++應用程序的東西。
有沒有方法在Visual C++ 2008 Professional中識別未使用的屬性/方法?如果默認情況下不可行,第三方工具的建議也非常感謝。如何在Visual C++ 2008中查找未使用的屬性/方法
感謝,
弗洛裏安
編輯: NDepend的僅適用於.NET程序集。我正在尋找可以用於本機C++應用程序的東西。
嘗試PC-Lint。它非常適合尋找冗餘代碼。 我還沒有嘗試版本9。版本8確實需要一些時間進行配置。 嘗試在線互動演示。
我沒有親自使用他們的生產力工具(我使用他們的Windows控制套),但它看起來像的DevExpress有一個C++的列表重構所謂的Refactor! for C++。我沒有立即發現你正在尋找的功能,但也許他們有它?
棘手的是,C++中的許多函數都必須存在,即使它們沒有被調用。 Boost尤其會導致這種情況,但即使是常規的STL代碼也可以做到這一點。你的代碼必須一起玩。你可以定義一個拷貝ctor,因爲std :: vector正式需要它。但是,如果您沒有實例化任何實際上覆制T的std :: vector成員,您的副本將保持未使用狀態。
即使他們不需要,他們也經常爲了安全而存在。例如,聲明私有拷貝構造函數可以防止對象意外複製。如果沒有私人聲明,編譯器會爲你定義一個公共的,成員級的拷貝文件。現在,這是「未使用」,你想警告他們嗎?
Coverage Validator可以顯示未使用的C++代碼(但不包括屬性)。它是動態的,所以你必須「exersize」應用程序才能得到結果: http://successfulsoftware.net/2008/03/10/coverage-validator/
PC-Lint非常強大,但很難傾斜。當然,這很好地描述了C和C++不是嗎?
我認爲很好的另一個工具是Whole Tomato的Visual Assist X,它集成到IDE中。
在搜索未引用的代碼時,C++中有一些大的陷阱:模板,回調和消息處理程序可能對您的項目至關重要,但不會直接調用。例如,線程的處理程序不是直接調用的,而是在創建新線程時的一個參數。 MFC或WTL項目中的「On_buttonpress」類型消息也將顯示爲未調用的方法。
一旦你找到它們,你可以配置PC-Lint忽略這些,但第一次通過它的很多工作。
您能否詳細說明Visual Assist X如何幫助查找未使用的代碼? – 2009-06-10 06:49:43
這正是我一直在尋找的。 Visual Studio有一個集成了PC-Lint的VisualLint插件。一個較便宜的解決方案應該沒問題,但似乎沒有任何東西存在。 – fhe 2008-10-02 10:05:23