Visual Studio .ncb文件的内部格式

时间:2009-01-30 21:58:48

标签: flowchart ncb

我已经决定我需要获得一些流程图来反向工程我继承的一些代码。我没有VS的Team版本,所以我无法使用Team的Visio内置功能。所以我想我会解析.ncb(Parser Information)文件并使用dot制作图表(来自graphviz.org)。这有多难?但我找不到该文件内部的任何文档。

我真的不想使用商业应用程序来做流程图。我见过的免费插件都假设我使用的是C#或VB。但是,我使用的是C和C ++。

我确实尝试过具有“可视化编程流程图”工具的Microsoft“Visual Studio Learning Pack”。但它似乎不适用于C ++。太近了!

那么,是否有人指向文件格式或其他建议(保持礼貌!)?

2 个答案:

答案 0 :(得分:2)

我认为您没有太多机会解析NCB文件。它们采用专有的二进制格式,可以在每个版本的visual studio之间进行更改和更改。根据我在某处读到的内容,在VS2010中可能会丢弃NCB并使用SQL Server Express将智能感知信息保存在普通数据库中。

您可能考虑的另一个选择是使用一些其他工具来分析您的代码并构建图表和UML图表。 Doxygen在某种程度上做到了这一点,并且有许多商业工具也可以。我对Rational Rose有一些个人经验(现在可能已经不存在了......)和一个名为Together的工具。 This list可能会有所帮助

答案 1 :(得分:0)

对于“谁叫什么”,“谁继承/重载在哪里”和“谁读/写全局”这一意义上的结构分析,我曾经使用过DeHydra(一个mozilla项目)进行分析和yed(www.yworks。 com)用于图形显示。两者都是免费的。

Dehydra在linux下运行,需要你的代码才能通过gcc编译。这不是一个太严重的障碍,因为VC可以生成makefile,可以手动修改为gnu make。 在我的情况下,需要对包含文件进行一些修补,但我最终可以获得所需的信息。

我花了3天时间让DeHydra工作,另外2天调整makefile并包括和 再过3天来调整javascript代码,DeHydra内部提取所需的信息。

DeHydra + Javascript现在在一个编译器中运行一个包含代码结构的graphml文件,该文件可以直接显示并以交互方式操作。