【问题标题】:Internal format of Visual Studio .ncb filesVisual Studio .ncb 文件的内部格式
【发布时间】:2009-01-30 21:58:48
【问题描述】:

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

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

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

那么,有没有人提供文件格式或其他建议(保持礼貌!)?

【问题讨论】:

    标签: flowchart ncb


    【解决方案1】:

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

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

    【讨论】:

    • 我得出的结论是你是对的。但是,似乎有一种叫做 VCCodeModel 的东西,我可以用它来获取我需要的信息。但是普通C++中没有例子……
    【解决方案2】:

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

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

    我花了 3 天时间让 DeHydra 工作,又花了 2 天时间来调整 makefile 并包含和 再花 3 天时间来修改 JavaScript 代码,它在 DeHydra 内部提取所需的信息。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-03
      • 1970-01-01
      • 2012-03-03
      • 1970-01-01
      • 2011-02-28
      • 2010-09-07
      • 2021-05-08
      • 1970-01-01
      相关资源
      最近更新 更多