文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Visual Studio 2010建模学习(十二) - C/C++代码的可视化(转)

Visual Studio 2010建模学习(十二) - C/C++代码的可视化(转)

时间:2011-01-13  来源:董雨

 

 

     同事Juan写了一篇介绍Visualization and Modeling Feature Pack 《针对C/C++代码的工程间依赖关系的层验证 》的博客,发表在我们团队的CSDN博客上,推荐给大家!

 

 

     今年4月发布的Visual Studio 2010 (以下简称VS2010)的旗舰版提供了多种构架工具,来帮助开发人员分析和理解已有的代码库(Legacy Codebase),这些工具包括:依赖项关系图、顺序图以及体系结构资源管理器,Jennifer Marsman在她的博客中详细介绍了如何使用这些工具。然而在VS2010的正式发布版中,这些工具仅支持对.NET语言工程的支持,更确切地讲是仅支持C# 和VB.NET工程。对于广大的C/C++开发人员来说,他们也非常希望能够拥有类似的功能。为此,Visual Studio团队在今年6月份发布的Visualization and Modeling Feature Pack工具包中,实现了对C/C++代码的可视化功能。

      在安装了这个工具包后,就可以通过创建依赖项关系图(Dependency Graph)来了解和分析已有的C/C++代码工程了。这里我们以VS C++团队编写的Hilo工程为例,来展示一下如何为C++ 工程创建依赖项关系图,Hilo的源代码可以在http://code.msdn.microsoft.com/Hilo下载到。

      在VS中打开Hilo工程,选择菜单“体系结构”->“生成依赖项关系图”,如下图所示。在子菜单中,“按程序集”、“按名字空间”和“按类和自定义”是在VS 2010发布版中就有的,它们也可以用于C/C++的工程。这里新增加的一个菜单项是 “By Include File”,它是用来生成C/C++文件之间的#include引用关系的,会在另外的博客中进行介绍。注意:Visualization and Modeling Feature Pack仅提供了英文版,它可以安装在其它语言版本的VS 2010上,但显示的内容仍是英文的。

      这里选择“按程序集”菜单项,它会生成如下的依赖项关系图(DGML有向图),显示Browser.exe与其它外部动态库文件之间的总体依赖关系:      进一步展开“外部”模块,可以看到Browser.exe依赖到了那些具体的动态库文件,如下图所示。当鼠标停留在模块之间的有向连线上的时候,会显示出“导向按钮”以及对连线所代表依赖关系的描述信息。      一步步展开到最底层,展现出来的就是函数之间的调用关系,如下图所示, Hilo::AnimationHelpers名字空间与Ole32.dll的以来关系归根结底就是AnimationUtility::Initilize对CoCreateInstance的调用关系。鼠标双击图中的函数,如果有对应的代码则会自动打开代码文件,并自动定位到函数的位置,这样大大方便用户在浏览依赖关系模型时察看其对应的代码内容。

 

      这个版本的Visualization and Modeling Feature Pack所生成的C/C++工程依赖项图,相对于为C#和VB.NET生成的依赖图,还是有一定的局限性:首先,它只显示了函数调用类型的依赖关系,而并没用有像C#/VB.NET生成的依赖项关系图那样,还包含有引用、继承等等多种依赖关系;其次,只显示了跨二进制文件(Cross-binary)之间的依赖关系,而没有同一文件内部函数之间的调用关系;最后,只有参与了依赖关系的文件、名字空间、类和函数才被显在图上,而其它内容则没有显出来。

参考资源:

  1. Tech.Ed 2010 - ALM for C++ in Visual Studio 2010
  2. Jason的博客:Announcing: VS2010 Productivity Power Tools and Modeling Feature Packs
  3. Soma的博客:Modeling Websites and Native Code
  4. Visual Studio 2010: How to understand your code using Dependency Graphs, Sequence Diagrams, and the Architecture Explorer
  5. How to: Generate Dependency Graphs for C and C++ Code
  6. Sneak peek at the first “Feature Pack” for VS2010 Visualization and Modeling Tools
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载