Troubleshooting for reverse engineering Microsoft Visual C++ 6.0
During the reverse engineering process, a log file is created that lists the detected errors. The file is written to <temp_dir>\<project_name>.txt (e.g. c:\temp\project.txt). Most, if not all, of the errors encountered occur in classes that use C++ templates. (The browse file API has several known bugs that affect its ability to handle C++ templates.)
Code features that are not reverse engineered by the Visio UML Add-In
-
Attribute types
-
Method return types
-
Parameter default values
-
Namespaces If a class A is defined inside a namespace, the class will be reverse engineered, but the fact that it was part of a namespace will not be reverse engineered.
-
Several C++ keywords, including inline and friend, and volatile.
-
Abstract classes and methods These are not identified as such in the reverse engineered model.
-
Template definitions Instances of template classes are reverse engineered, but only as standard classes, not as parameterized classes.
Code features that are sometimes reverse engineered by the Visio UML Add-In
-
Method parameters Due to a bug in the browse file API, long parameter lists are not always reverse engineered.
-
Method parameter names Parameter names are obtained from method definitions that occur outside the class definition. If a method is defined inside a class definition, then correct parameter names cannot be obtained. In this case, names are automatically generated.
Code features that are sometimes incorrectly reverse engineered by the Visio UML Add-In
-
Classes and class methods Due to a bug in the browse file API, class names and class method names are sometimes corrupted. If a corrupted name is detected during reverse engineering, the element is not added to the UML model. This problem generally occurs in classes derived from C++ templates. Occasionally, name corruption isn't detected, in which case the corrupted name is added to the UML model.
No comments:
Post a Comment