在vs中,大量添加窗體或者控件後,發現無法由系統IDE自動生成代碼,如自動添加按鈕響應函數等,rc管理器界面雙擊按鈕添加函數,會出現 提示框 “無法執行添加/移除操作,因為代碼元素**是只讀的”。開始認為可能是對應的.cpp和.h被加了只讀屬性,後來發現是工程的ncb文件引起的。
解決方案:關閉vs,刪除工程對應的.ncb文件,重啟vs就好了。
問題原因:NCB是no compile brower的縮寫,文件中存放了供ClassView、WizardBar和Component Gallery使用的信息(關於ClassView、WizardBar請訪問http://msdn.microsoft.com/zh-cn/library/6761383e.aspx)
在復制資源或者工程時,要修改工程的ncb文件,因為要適應新的環境可能造成ncb文件混亂;而添加按鈕響應函數等是修改ncb文件中ClassView、WizardBar模塊的數據,數據混亂就會導致自動添加函數失敗。刪除ncb文件讓vs重新建立ncb即可。
附vs幾種文件的功能
.clw文件記錄了類的信息,如果classView中某個類不見時了,重新此文件重新生成即可
.ncb文件記錄了類的提示信息,如果類的成員函數和變量的提示不見了,重新生成該文件即可,方法同上;
.aps文件記錄了資源信息,要利用現成的資源,需要修改3個文件,.rc文件,Resource.h文件和.aps文件,.aps直接刪除後,進入程序,VC會自動生成。
.APS:存放二進制資源的中間文件,VC把當前資源文件轉換成二進制格式,並存放在APS文件中,以加快資源裝載速度。資源輔助文件。.BMP:位圖資源文件。
.BSC:浏覽信息文件,由浏覽信息維護工具(BSCMAKE)從原始浏覽信息文件(.SBR)中生成,BSC文件可以用來在源代碼編輯窗口中進行快速定位。用於浏覽項目信息的,如果用source brower的話就必須有這個文件。可以在project options裡去掉Generate Browse Info File,這樣可以加快編譯進度。
.C:用C語言編寫的源代碼文件。
.CLW:ClassWizard生成的用來存放類信息的文件。classwizard信息文件,ini文件的格式。
.CNT:用來定義幫助文件中“Contents”的結構。
.CPP或.CXX:用C++語言編寫的源代碼文件。
.CUR:光標資源文件。
.DEF:模塊定義文件,供生成動態鏈接庫時使用。
.DLG:定義對話框資源的獨立文件。這種文件對於VC工程來說並非必需,因為VC一般把對話框資源放在.RC資源定義文件中。
.DSP:VC開發環境生成的工程文件,VC4及以前版本使用MAK文件來定義工程。項目文件,文本格式。
.DSW:VC開發環境生成的WorkSpace文件,用來把多個工程組織到一個WorkSpace中。工作區文件,與.dsp差不多。
查看本欄目