王朝网络
分享
 
 
 

Visual C++ 2005 IDE 的增强特性 (1) [翻译]

王朝vc·作者佚名  2006-01-09
宽屏版  字体: |||超大  

Visual C++ 2005 IDE 的增强特性 (1)

原文:Nick Wienholt

饶趣译

原文出处:http://www.codeguru.com/columns/Kate/article.php/c9167/

尽管对于C++语言的改变及IDE的改进还没有引起人们大量的注意,尽管还缺乏一定的公开性,IDE的改进已经非常明显,它们将极大地改进开发人员在日常工作中所积累的经验。这些改进巨大而显著――从对Server Explorer的增强到宏的智能支持,从类视图结构的UML到对新的MSBuild编译系统的支持,以及所有类似的变动。本文及后来新增的内容将覆盖所有这些激动人心的特性的方方面面。

一、 IntelliSence的改进

当 IntelliSen于90年代中期在Visual C++中被描述时,它执行相当缓慢而且没有为C++编码中所潜在的复杂操作提供足够的帮助。与C++相比,传统的Visual Basic代简直出奇的简单,在VB中可以直接使用IntelliSence(当你在编写代码时,它总是能够为你提供有用的信息和帮助)。而另一方面,C++语言的如下特性使得让IntellSence正常工作成为一个困难:

名字空间 模板 宏及其它预处理方法 头文件 头文件与源文件的代码分离 使得后台编辑变得非常困难的复杂编辑过程

所有这些问题都解释了为何Visual C++ IDE组需要大量的版本来使IntellSence达到无依赖的独立状态。在Visual C++的2005发布版中,这个小组已经很接近这个目标了。其中一个主要的改进在于代码在编辑后被解析,IntellSence能够对类中有效的方法和变量给出正确的信息。但这也仅仅是一个最有成就的尝试,非常复杂的代码语句仍然会使IntellSence变得无所适从。

如前面所介绍的, IntelliSence被增强并能够支持宏定义。虽然并非是一个意义深远的改进,但它却虽然方便实用,特别对于那些有大量参数列表的宏而言。图1展示了IntelliSence为使用一个古老的MAX宏提供了一些帮助。

图1.IntelliSence对宏的支持

除了对宏的支持以外,与模板的搭配也工作得更加良好,以前由于混乱而使得IntelliSence的作用大打折扣的成员列表也因采用约束出现在头文件中的信息而得到修正。

二、XML注解

对于有C#经验(或熟悉VB.NET 2005)的开发人员来说,XML注解对于C++是一个受欢迎的扩展。XML注解与原有的工程或.NET工程搭配,可以生成能够被Visual Studio .NET或类似NDoc这样的第三方工具使用的XML文档。

下表展示了推荐用于XML文档的标签:

<c>

表示一行代码,例如一个方法或类名

<code>

与 <c> 类似,但是表示多行代码

<example>

表明注释是一个展示如何使用一个方法或类的例子;典型地包含<c>或<code>子元素

<exception>*

指明一个方法能够抛出的异常

<include>*

允许注释来源于另外的文件,需要指定一个文件名及XPath表达式

<list> 与 <listheader>

用于定义表格

<para>

表示一个段落

<param>*

用于命名或描述一个被方法所接受的参数

<paramref>*

指示一个术语为方法所接受的一个参数

<permission>*

指示调用方法所需的条件

<remarks>

提供比<summary>元素更深层的信息

<returns>

描述方法的返回值

<see>*

指定一个链接

<seealso>*

添加一个包含使用另外一个标签附加信息的链接

<summary>

用于为一个类或方法提供主文档

<value>

描述一个属性或属性的访问方法

带*号的标签为编译器可选的标签。

XML注解添加于相应代码元素的上方,并由三个一组的斜杠标识"///"。下面的代码示例展示了一个由summary标签注解的简单的类,它还包含一个由value标签注解的属性。

///<summary>Demonstrates the use of XML comments in C++</summary>

ref class CommentedClass {

public:

/// <value>C++/CLI with an automatically-generated backing member

/// variable</value>

property int Prop;

}; 要打开XML文档内容,可以通过Configuration Properties | C/ C++ | Output File页将Generate XML Documentation File 属性设置为Yes来打开,或都为命令行编译器指定/doc选项。(参见图2)

图2. 产生一个XML文档文件

打开/doc选项,工程中的每一个*.CPP都将会生成一个*.XDC文件。这个文件包含了文件中每一个类的XML注解。前面示例代码中相应的XDC文件内容为:

<?xml version="1.0"?>

<doc>

<members>

<member name="T:CommentedClass" decl="false"

source="z:\nick\dotnet articles\vc++ 2005

ide\xmlcomments\xmlcomments\xmlcomments.cpp" line="14">

<summary>Demonstrates the use of XML comments in C++</summary>

</member>

<member name="P:CommentedClass.Prop" decl="false"

source="z:\nick\dotnet articles\vc++ 2005

ide\xmlcomments\xmlcomments\xmlcomments.cpp" line="17">

<value>A C++/CLI with an automatically-generated backing

member variable</value>

</member>

</members>

</doc>

在编辑过程结束时,这些XDC文件将被合并到一起,并生成一个包含所有XDC文件内容的XML文件。默认的工程模板所产生的XML文件名称也所生成的执行文件或汇编文件同名。使用这种文件命名转换允许Visual Stuio通过使用XML文件注释来增强IntelliSense,如图3所示:

图3. XML 文档注释与IntelliSense同时使用

三、调用浏览器 没有IDE的辅助,要明了某一个具体的方法被谁调用及调用了哪些方法是一个很枯燥的工作。虽然Visual C++ IDE的前一版本中提供了部分功能,但使用起来却很困难且并不总是有效。在Visual C++ 2005中的调用浏览器允许双向浏览调用图表,它还允许在源码文件的帮助下上朔方法在哪里被调用和实现。 图4展示了我前一篇文章中所使用的ThreadPool程序的调用图表。调用浏览器树对于一个简单的应用程序及真实应用程序来说有一定的复杂度,这个树很宏大。能够被收缩、展开及展示一个具体的调用分支,它有着不可置信的作用,可以通过使用Find In Files对话框作为导航机制。

图4. 调用浏览器

调用浏览器拥有基于用户指定搜索标准的过滤能力。用户可以指定函数名称进行搜索,可以使用*或?搜索通配符。

后面,我将继续讲述IDE的改进,包括允许直接在IDE中使用类UML建模的新的类视图工具。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有