The Datatypes and enumerations<\/span> tab allows you to: <\/p>\n\r <\/p>\n\r •<\/span>scan headers to look for datatypes including typedefs, structs and enumerations <\/span><\/p> •<\/span>define or edit data not able to be determined automatically<\/p> <\/p>\n\r The Show data at...<\/a> feature of the Memory tab uses these definitions to inspect allocated memory using a meaningful interpretation of the data.<\/p>\n\r <\/p>\n\r If you don\'t define any datatypes or definitions here then memory inspection will just show the same format as the Show Data at (bytes)...<\/a> option.<\/p>\n\r <\/p>\n\r <\/p>\n\r <\/p>\n\r <\/p>\n\r <\/p>\n\r •<\/span>Edit datatypes...<\/span> shows the Datatypes dialog<\/a> to edit existing datatypes or add new ones <\/span><\/p> <\/p>\n\r •<\/span>Edit enumerations...<\/span> shows the Enumerations dialog<\/a> to edit existing enums or add new ones <\/span><\/p> <\/p>\n\r •<\/span>Scan for datatypes and enumerations...<\/span> shows the Scan for Datatypes dialog to extract definitions from header files <\/span><\/p> <\/p>\n\r •<\/span>Reset datatypes and enumerations<\/span> clears any definitions previously defined or found in headers <\/span><\/p> <\/p>\n\r Don\'t accidentally click the Reset<\/span> button at the bottom of the page as that will reset all<\/span> settings!<\/p>\n\r <\/p>\n\r You can define standalone datatypes and enumerations, as well as those to be used in more complex datatypes. <\/p>\n\r <\/p>\n\r Make sure you click OK not Cancel on the global settings dialog when you\'re done or you\'ll lose any changes.<\/p>\n\r <\/p>\n\r Definitions will persist between sessions.<\/p>\n\r <\/p>\n\r <\/p>\n\r <\/p>\n\r <\/p>\n\r <\/p>\n\r <\/p>\n\r •<\/span>Add...<\/span> shows the Define Data dialog<\/a> to add a new definition <\/span> •<\/span>Edit...<\/span> opens the Define Data dialog to modify or just review an existing definition <\/span><\/p> <\/p>\n\r •<\/span>Remove<\/span> removes any selected datatypes from the list <\/span><\/p> <\/p>\n\r •<\/span>Byte packing<\/span> sets the number of bytes into which the datatype is to be packed and aligned <\/span><\/p> <\/p>\n\r The enumerations dialog is almost identical to the Datatypes dialog above:<\/p>\n\r <\/p>\n\r <\/p>\n\r •<\/span>Add...<\/span> shows the Define Enumeration dialog<\/a> to add a new definition <\/span><\/p> <\/p>\n\r •<\/span>Edit...<\/span> opens the same dialog to modify or just review an existing enum <\/span><\/p> <\/p>\n\r •<\/span>Remove<\/span> removes any selected enumerations from the list <\/span><\/p> <\/p>\n\r <\/p>\n\r To define a new datatype you need to enter the name of the structure, and details about each member.<\/p>\n\r <\/p>\n\r You\'ll need to define any referenced types first before you define a structure that uses it. <\/p>\n\r <\/p>\n\r We\'ll demonstrate the datatype definition with the following examples:<\/p>\n\r <\/p>\n\r enum<\/span> <\/span>VehicleType<\/span> VehicleType_Bicycle<\/span> <\/span>=<\/span> <\/span>4<\/span>,<\/span><\/p>\n\r VehicleType_Motorbike<\/span> <\/span>=<\/span> <\/span>5<\/span>,<\/span><\/p>\n\r VehicleType_Scooter<\/span> <\/span>=<\/span> <\/span>6<\/span>,<\/span><\/p>\n\r VehicleType_Skateboard<\/span> <\/span>=<\/span> <\/span>7<\/span> <\/p>\n\r struct<\/span> <\/span>VehicleDataType<\/span> <\/p>\n\r <\/p>\n\r •<\/span>Edit datatypes...<\/span> Datatypes dialog<\/span> Add<\/span> shows the Define Data dialog <\/span><\/p> <\/p>\n\r <\/p>\n\r <\/p>\n\r <\/p>\n\r <\/p>\n\r •<\/span>Name<\/span> specify the name of the datatype, VehicleDataType<\/span> <\/span> •<\/span>Add<\/span> appends a new row to the data to define a new member <\/span> Double click to show the drop down list in the Type<\/span> column if not already shown.<\/p>\n\r <\/p>\n\r If the type is an enumeration, you\'ll be prompted for the name of the enumeration which you should have already defined<\/a>.<\/p>\n\r <\/p>\n\r <\/p>\n\r <\/p>\n\r Enter the name of the data member in the Name<\/span> column.<\/p>\n\r <\/p>\n\r If more than one, Specify how many items the member represents in the Count<\/span> column, e.g. for an array.<\/p>\n\r <\/p>\n\r Values in the Offset<\/span> column will be calculated automatically.<\/p>\n\r <\/p>\n\r •<\/span>Remove<\/span> removes any selected data members from the list <\/span> <\/p>\n\r <\/p>\n\r •<\/span>Edit enumerations...<\/span> Enumerations dialog<\/span> Add<\/span> shows the Define Enumeration dialog <\/span><\/p> <\/p>\n\r <\/p>\n\r <\/p>\n\r Any enumerations defined here can be used in the Define Data dialog<\/a> above.<\/p>\n\r <\/p>\n\r •<\/span>Name<\/span> specify the name of the enum, VehicleType<\/span> <\/span> •<\/span>Add<\/span> appends a new row to the data to define a new member <\/span> Enter the name of the member in the Enumeration<\/span> column.<\/p>\n\r <\/p>\n\r Set the corresponding value in the Value<\/span> column<\/p>\n\r <\/p>\n\r •<\/span>Remove<\/span> removes any selected members from the list <\/span> <\/p>\n\r <\/p>\n\r <\/p>\n\r You can scan header files to find definitions for datatypes or enumerations which are not otherwise detectable.<\/p>\n\r <\/p>\n\r •<\/span>Scan for datatypes and enumerations...<\/span> shows the Scan for Datatypes dialog <\/span><\/p> <\/p>\n\r <\/p>\n\r <\/p>\n\r <\/span><\/p>\n\r •<\/span>Browse... <\/span> type or browse to enter a directory or drive to scan for header files from which to extract datatypes <\/span><\/p> <\/p>\n\r Leave this blank to scan all available drives.<\/p>\n\r <\/p>\n\r •<\/span>Search... <\/span> start header file scanning <\/span><\/p> <\/p>\n\r<\/a>Datatypes Dialog<\/span><\/h1>\n\r
\n\r <\/span><\/p> <\/span><\/h1>\n\r
<\/a>Enumerations dialog<\/span><\/h1>\n\r
<\/span><\/h1>\n\r
<\/h1>\n\r
<\/span><\/h1>\n\r
<\/a>Defining a new datatype<\/span><\/h1>\n\r
\n\r{<\/span>
\n\r <\/span>VehicleType_Car<\/span> <\/span>=<\/span> <\/span>0<\/span>,<\/span>
\n\r <\/span>VehicleType_Bus<\/span> <\/span>=<\/span> <\/span>1<\/span>,<\/span>
\n\r <\/span>VehicleType_Van<\/span> <\/span>=<\/span> <\/span>2<\/span>,<\/span>
\n\r <\/span>VehicleType_Lorry<\/span> <\/span>=<\/span> <\/span>3,<\/span><\/p>\n\r
\n\r};<\/span><\/p>\n\r
\n\r{<\/span>
\n\r <\/span>int<\/span> <\/span>numWheels;<\/span>
\n\r <\/span>char<\/span>*<\/span> <\/span>strMake;<\/span>
\n\r <\/span>double<\/span> <\/span>realEngineSize;<\/span>
\n\r <\/span>enum<\/span> <\/span>VehicleType<\/span> <\/span>enumType;<\/span>
\n\r <\/span>CObject<\/span>*<\/span> <\/span>ptrOwner;<\/span>
\n\r};<\/span><\/p>\n\r
\n\r <\/span><\/p>
\n\r <\/span><\/p>
\n\rThe list has many core datatypes and will include any datatypes you\'ve already defined.<\/p>\n\r
\n\r <\/span><\/p> <\/span><\/h1>\n\r
<\/a>Defining a new enumeration<\/span><\/h1>\n\r
\n\r <\/span><\/p>
\n\r <\/span><\/p>
\n\r <\/span><\/p><\/a>Scanning for datatypes<\/span><\/h1>\n\r