无法执行添加/移除操作,因为代码元素**是只读的

在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差不多。

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/net/

.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:声音资源文件。 .

作者:csdn博客 微wx笑

时间: 2024-08-04 12:33:12

无法执行添加/移除操作,因为代码元素**是只读的的相关文章

VC2005:无法执行添加/移除操作,因为代码元素是只读的....多个解决办法

最近在编程过程中偶尔会遇到这个错误, 非常烦人, 因为一旦添加事件处理函数就会弹出这个窗口 解决方案:1.重启VC2.打开Resource.h文件看看 一看就知道了 有些定义重复了 可以手动改掉 保存 编辑器重新加载 ........3.关闭解决方案,删除ncb文件重新添加即可4.实在不行就手动添加消息处理5.查看.h和.cpp文件的属性,有可能是只读的,修改属性后就可以了6.把你要添加事件的对话框相应的类文件(*.h和*.cpp)给关了就可以了 上面几种方法网上搜罗的.推荐第3种.

asp批量添加修改删除操作示例代码

核心代码: <title>asp批量添加修改删除操作示例</title> <% if request.Form("op")="update" then'表单提交 ids=request.Form("ids") if ids<>"" then response.Write "要删除的数据id集合:"&ids&"<br>"

对ListBox的添加移除操作实例分享_实用技巧

前台代码: 复制代码 代码如下: <div> <asp:ListBox ID="ListBox1" runat="server" Height="123px" Width="113px" SelectionMode="Multiple"> <asp:ListItem>tom</asp:ListItem> <asp:ListItem>jion<

vbscript-为什么点击链接到该页面会执行两次插入数据操作,代码是没有问题的,因为刷新就只执行一次操作

问题描述 为什么点击链接到该页面会执行两次插入数据操作,代码是没有问题的,因为刷新就只执行一次操作 <a href='zf.asp?WBDzhuren="&WBDzhuren&"&ID="&rs4("ID")&"'class='zf'>转发</a> -------------------------zf.asp的全部代码----------------------- <%@LA

jquery随意添加移除html的实现代码_jquery

html代码: 复制代码 代码如下: <ul id="list3" class="eventlist"> <li>plain</li> <li class="special">special <button>I am special</button></li> <li>plain</li> </ul> script代码: 复制代

jQuery 添加/移除CSS类实现代码_jquery

其中一种办法是改变页面元素的CSS类(Class),这在传统的Javascript里,我们通常是通过处理HTML Dom的classname特性来实现的:而jQuery里提供三种方法来实现这个功能,虽然它们和传统方法的思想相通,但是却节省了许多代码.还是那句话 - "jQuery让JavaScript代码变得简洁!" 1. addClass() - 添加CSS类 复制代码 代码如下: $("#target").addClass("newClass"

Entity Framework 实体框架的形成之旅--几种数据库操作的代码介绍(9)

本篇主要对常规数据操作的处理和实体框架的处理代码进行对比,以便更容易学习理解实体框架里面,对各种数据库处理技巧,本篇介绍几种数据库操作的代码,包括写入中间表操作.联合中间表获取对象集合.递归操作.设置单一字段的修改等几种方式. 1.写入中间表操作 一般情况下,我们可以通过执行数据库脚本方式写入. /// <summary> /// 增加用户IP信息 /// </summary> /// <param name="userID"></param&

js简单的表格添加行和删除行操作示例

 这篇文章主要介绍了js简单的表格添加行和删除行操作,需要的朋友可以参考下  代码如下: <html>  <head>  <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>  <script>  //创建一个html元素  function $c(tagname){  return document.createElement(tagname)

SQL 2005 中查询或执行另外的数据库操作的方法

原文:SQL 2005 中查询或执行另外的数据库操作的方法  摘要: 如果,你想在一台数据库服务器上,查询另一个台数据服务器的数据该如何做呢?如果,你想在同一台数据服务器上,在不同的数据库之间查询数据,又该怎么办呢? 1.Synonym 2.openquery 3.Linked Servers      Server Object-->Linked Servers--> serverType 选择 SQL Server, 在 Security 中 选择"Be made using t