This documentation is not maintained. Please refer to doc.castsoftware.com/technologies to find the latest updates.

Extension ID

com.castsoftware.cpp

What's new

Please refer C and Cpp Analyzer 2.3 - Release Notes for more information.

Description

This extension provides support for C/C++/Pro*C.

When installed, this extension replaces the C/C++ Analyzer embedded in CAST AIP and provides additional features and improved analysis capabilities.

In what situation should you install this extension?

If your application contains C/C++/Pro*C source code and you want to view these object types and their links with other objects, then you should install this extension.

Note that CAST Console will automatically download this extension when C/C++/Pro*C source code is delivered.

Technical information

This extension will be used launched when the option Analyzer to invoke in the CAST Management Studio is set to Legacy analyzer. See C and Cpp - Analysis configuration for more information.


Function Point, Quality and Sizing support

This extension provides the following support:

  • Function Points (transactions): a green tick indicates that OMG Function Point counting and Transaction Risk Index are supported
  • Quality and Sizing: a green tick indicates that CAST can measure size and that a minimum set of Quality Rules exist
Function Points
(transactions)
Quality and SizingSecurity
(tick)(tick)(error)

CAST AIP compatibility

This extension is compatible with:

CAST AIP release

Supported

8.3.3 and above(tick)

Supported DBMS servers

This extension is compatible with the following DBMS servers:

CAST AIP releaseCSSOracleMicrosoft
All supported releases(tick)(error)(error)

Detailed technology support

Language support

  • C++ language is supported up to C++17
  • C language up to C99, C11 and C17

Language extensions supported

  • Oracle Pro*C and IBM DB2 SQC extensions (EXEC SQL commands embedded in C code)
  • some Microsoft C++ Component Extensions:
    • interface
    • property
    • for each

Available project discoverers for the CAST Delivery Manager Tool

  • Visual C++ 2003
  • Visual C++ 2005
  • Visual C++ 2008
  • Visual C++ 2010
  • Visual C++ 2012
  • Visual C++ for versions > 2012  The Analysis Unit generated for this project is mapped to a Visual C++ 2012 environment profile

Visual C++ 2013, 2015, 2017 and 2019 projects, will be discovered as a Visual C++ 2012 project (i.e. the Analysis Unit generated for this project is mapped to a Visual C++ 2012 environment profile). You can therefore:

  • either change the analysis options in the CAST Management Studio so that:
    • "IDE used for this Analysis Unit" is set to "Not Specified"
    • "STL Support" is set to "Cast emulation"
  • or have Visual C++ 2012 installed on the analysis machine and analyse the code as a Visual C++ 2012 project.

Required third-party software

To successfully deliver and analyze C / C++ code, the following third-party software is required:

Install on workstation running the DMT (for extraction)

Install on workstation running CMS (for analysis)

Nothing required

Note that no project discoverer exists for Visual Studio 6.0, however, source code can still be packaged.

Software required

If you intend to use the CAST - VC++ XXX - Mandatory Part Environment Profile (usage is recommended), then you MUST install:

  • All include files of third party libraries that are used.
  • The appropriate IDE depending on source code to be analyzed:
    • Visual Studio 6.0
    • Visual Studio .NET 2003
    • Visual Studio 2005
    • Visual Studio 2008
    • Visual Studio 2010
    • Visual Studio 2012
Note that if you do not install the appropriate IDE for your source code, then the analysis will fail.
Note that the above information does not apply to other source code (C/C++ compiler from vendors other than Microsoft).

Download and installation instructions

Please see:

Note that CAST Console will automatically download this extension when C/C++/Pro*C source code is delivered.

Packaging, delivering and analyzing your source code

Please see: C and Cpp - Prepare and deliver the source code and all child pages:

What analysis results can you expect?

Please see: C and Cpp - Analysis results.

Rules

Please see: C and Cpp - Structural rules.