0

我已经决定我真的需要一些流程图来对我继承的一些代码进行逆向工程。我没有 VS 的 Team 版本,因此我无法将 Team 的内置功能与 Visio 一起使用。所以我想我会解析.ncb(解析器信息)文件并用点制作图表(来自graphviz.org)。那能有多难?但我找不到该文件内部的任何文档。

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

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

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

4

2 回答 2

2

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

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

于 2009-01-30T22:20:38.597 回答
0

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

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

我花了 3 天时间让 DeHydra 正常工作,又花了 2 天时间来调整 makefile 和包含文件,又花了 3 天时间来调整 JavaScript 代码,这些代码在 DeHydra 中提取了所需的信息。

DeHydra + Javascript 现在在一个编译器中提供了一个包含代码结构的 graphml 文件,可以在 yed 中直接显示和交互操作。

于 2010-02-25T11:36:26.993 回答