分析 #include 文件

使用输入选项卡来指定要在反向工程过程中分析的包含文件。

  • 表示仅分析在主“反向工程”窗口中指定的文件或文件夹;将会忽略所有 #include 语句。

    这种方式对反向工程过程的性能损失最小。 请仅在适当的时候以这种最受限的方式使用反向工程。 这种方式不导入实现信息(例如操作主体)或静态变量的初始化,并且失去所需要的信息(例如依赖关系)。 请注意,如果没有首先分析相应的规范文件,那么无法分析实现文件。
    注: 使用 None 将不会导入 .cpp.c 文件的内容。
  • 仅同名头文件表示仅分析匹配的包含文件。 换言之,同名的已分析实现文件的相应规范文件。 这种方法称作逻辑文件方式

    例如,对于名为 MyClass.cpp的实现文件,反向工程实用程序将仅分析名为 MyClass.h的包含文件。 不会分析所选文件列表中包含的所有其他文件。 这种高性能方式会导入有关已分析类的完整信息,但可能丢失通过项目的不同部件的依赖关系。 这种方式是为大型项目(大约 1000 个文件)的反向工程设计的。
    注: 如果选择此选项,那么不会分析嵌套的 #include 语句。

    请参阅 分析同名的头文件 以获取示例。

  • 仅限来自文件列表表示仅分析您在主“反向工程”窗口中指定的包含文件。

    例如,假设您有四个文件 (one.htwo.hthree.hone.cpp) ,并选择名为 one.htwo.hone.cpp的文件。 反向工程实用程序将会分析 one.cpp 及其包含文件 one.htwo.h。 它将不会分析 three.h,因为您未选择它。

    这种方式给予您对性能的大多数控制和策略性保护,排除对不相关文件的不需要的分析和多余的信息。 另外,它使您能够选择包含重要声明的文件进行分析,而不需要添加目录中的每个文件。 这种反向工程的方式会导入所有需要的信息并创建整个项目中的依赖关系。 它是为中型大小的项目(大约 100 个文件)而设计的。

    请参阅 分析文件列表 以获取示例。

  • 全部表示分析所有级别上的所有包含文件。 这种方式称作递归分析,并且会消耗大多数性能,因为它会导入所有信息,即使是 MFC 和 STL 等冗余信息。 这是缺省值。

<lang>_ReverseEngineering::ImplementationTrait::AnalyzeIncludeFiles 属性具有枚举值以指定反向工程过程如何分析包含文件。 请参阅“特征”窗口的相应属性选项卡上提供的属性定义。

对于 C++ 项目,您可以使用 CreateDependencies 属性指定反向工程功能如何从代码构造(例如,#includesforward 声明、friendsnamespace 用法)处理模型中依赖关系元素的创建。 有关如何使用该属性的更多详细信息,请参阅“功能部件”窗口的适当属性选项卡上为该属性提供的定义。