gpt4 book ai didi

c++ - 使用 "Enterprise Architect"逆向工程 C++ 代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:41:48 28 4
gpt4 key购买 nike

这又是一种“如何正确地做”的问题。对不起,如果有人生气。

我必须理解大约 150 个 C/C++ 混合的 TLOC。我在 UML 工具“Enterprise Architect”中导入了代码,得到了一张乱七八糟的图表。由于这种 C-ish 结构,许多结构和枚举都有匿名名称:typedef struct/enum {...} MyType;

在第二次运行中,我将其转换为 C++ 形式:struct/enum MyType{...}; 但得到了一堆不相关的结构。不幸的是,Enterprise Architect 不解析 typedef。例如没有识别出 A、B 和 C 之间的关系:

struct A;
struct B;
typedef A *PtrA;
typedef List<B> BList;
struct C{ PtrA pA; BList lB; };

感谢整个命名约定,我能够像这样用原始类型替换所有 typedef:

struct C{ A pA; B lB; };

现在在“Enterprise Architect”中导入源代码给出了一个包含所有关系的漂亮图表。因为,代码无法编译,而且不一样。代码中的所有更改都需要进行烦人的转换才能使 EA 再次理解此“伪”代码。因此我的问题:

  1. 是否有可能教授 EA识别原始类型?
  2. 其他 UML 工具是否识别类型(并在它们之间建立关系)更健壮?

非常感谢您的任何建议!瓦伦丁·海尼茨

最佳答案

我有 Enterprise Architect,几乎总是为了做你在大型代码体上尝试的事情,我使用 doxygen反而。它生成类图和调用图。与 GraphViz 一起使用和“UML 样式”类图,并且您拥有一个相当不错的代码导航和理解工具,具有灵活的配置以根据需要添加或排除细节。

关于c++ - 使用 "Enterprise Architect"逆向工程 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4489972/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com