1. 程式人生 > >vs無法執行新增/移除操作,因為程式碼元素**是隻讀的

vs無法執行新增/移除操作,因為程式碼元素**是隻讀的

在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差不多。
.EXP:由LIB工具從DEF檔案生成的輸出檔案,其中包含了函式和資料專案的輸出資訊,LINK工具將使用EXP檔案來建立動態連結庫。只有在編譯DLL時才會生成,記錄了DLL檔案中的一些資訊。
.H、.HPP或.HXX:用C/C++語言編寫的標頭檔案,通常用來定義資料型別,宣告變數、函式、結構和類。
.HLP:Windows幫助檔案。
.HM:在Help工程中,該檔案定義了幫助檔案與對話方塊、選單或其它資源之間ID值的對應關係。
.HPJ:由Help Workshop生成的Help工程檔案,用來控制Help檔案的生成過程。
.HPG,生成幫助的檔案的工程。
.ICO:圖示資原始檔。
.ILK:連線過程中生成的一種中間檔案,只供LINK工具使用。
.INI:配置檔案。
.LIB:庫檔案,LINK工具將使用它來連線各種輸入庫,以便最終生成EXE檔案。
.LIC:使用者許可證書檔案,使用某些ActiveX控制元件時需要該檔案。
.MAK:即MAKE檔案,VC4及以前版本使用的工程檔案,用來指定如何建立一個工程,VC6把MAK檔案轉換成DSP檔案來處理。
.MAP:由LINK工具生成的一種文字檔案,其中包含有被連線的程式的某些資訊,例如程式中的組資訊和公共符號資訊等。執行檔案的映像資訊記錄檔案。
.MDP:舊版本的專案檔案,相當於.dsp
.NCB:NCB是“No Compile Browser”的縮寫,其中存放了供ClassView、WizardBar和Component Gallery使用的資訊,由VC開發環境自動生成。無編譯瀏覽檔案。當自動完成功能出問題時可以刪除此檔案。編譯工程後會自動生成。
.OBJ:由編譯器或彙編工具生成的目標檔案,是模組的二進位制中間檔案。
.ODL:用物件描述語言編寫的原始碼檔案,VC用它來生成TLB檔案。
.OLB:帶有型別庫資源的一種特殊的動態連結庫,也叫物件庫檔案。
.OPT:VC開發環境自動生成的用來存放WorkSpace中各種選項的檔案。工程關於開發環境的引數檔案。如工具條位置資訊等。
.PBI、.PBO和.PBT:由VC的效能分析工具PROFILE生成並使用的三種檔案。
.PCH:預編譯標頭檔案,比較大,由編譯器在建立工程時自動生成,其中存放有工程中已經編譯的部分程式碼,在以後建立工程時不再重新編譯這些程式碼,以便加快整個編譯過程的速度。
.PDB:程式資料庫檔案,在建立工程時自動生成,其中存放程式的各種資訊,用來加快除錯過程的速度。記錄了程式有關的一些資料和除錯資訊。
.PLG:編譯資訊檔案,編譯時的error和warning資訊檔案。
.RC:資源定義檔案。
.RC2:資源定義檔案,供一些特殊情況下使用。
.REG:登錄檔資訊檔案。
.RES:二進位制資原始檔,資源編譯器編譯資源定義檔案後即生成RES檔案。
.RTF:Rich Text Format(豐富文字格式)文件,可由Word或寫字板來建立,常被用來生成Help檔案。
.SBR:VC編譯器為每個OBJ檔案生成的原始瀏覽資訊檔案,瀏覽資訊維護工具(BSCMAKE)將利用SBR檔案來生成BSC檔案。
.TLB:OLE庫檔案,其中存放了OLE自動化物件的資料型別、模組和介面定義,自動化伺服器通過TLB檔案就能瞭解自動化物件的使用方法。
.WAV:聲音資原始檔。