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.

Share Facebook Facebook Twitter Twitter Email Email

Was this information helpful?

Great! Any other feedback?

How can we improve it?

Thank you for your feedback!