Hex Editor - Binary File Editing Software for Windows
Docs

What's New in Structure Viewer (version 5.01)

This is a major upgrade to Structure Viewer. This module has almost been rewritten from scratch, taking advantage of new compiler, parallel processing (on multi-processor and multi-core computers), new features and a major performance boost.

Hex Editor Neo does not perform pre-compilation anymore. The speed of compilation is now 10-100 times faster and is performed by multiple cores. Structure Viewer initialization no longer slows down application start up.

New version improves the binding time and reduces memory consumption of bound structures.

New Language Features

_SVC_VER compiler version macro
Compiler version in 5.01 has a value of 0x300 (major version: 3, minor version: 0), which indicates major upgrade.
Breaking change
break operator now always exits the current scope, even if not used inside a loop or switch statement.
Breaking change
When defining constants, the expression at the right side must evaluate to a constant value at compile time. Compare this to variables.
Breaking change
Visual Basic Scripting is not supported anymore. You can create external functions on Javascript only.
Alternative syntax for specifying enumeration's base type
New syntax (the one described in C++11) for specifying enumeration's base type may be used. The old one is still supported.
Update to #pragma byte_order behavior
This pragma may now be used at any scope. It changes the byte ordering immediately (effective for next fields if used inside a user-defined type, for example).
Non-fatal $assert directive is supported
This release finally makes use of non-fatal $assert directive possible (it was documented, but not supported in previous releases).
Updating of array elements
Previous versions allowed you to declare variable arrays. This version adds support for modifying individual array elements after they have been declared (and possibly initialized).
New attributes

In addition to noindex attribute, the following attributes introduced:

  • noautohide - allows you to turn off automatic hiding of empty fields.
  • onread - specify the expression to be evaluated each time the value is read.
  • format - specify the format string to be used when displaying the field's value.
  • description - specify the user-friendly description of the field.
  • color_scheme - specify the color scheme for the field.
New built-in functions
The following new built-in functions were introduced: bool, decimal, hex, octal, binary, integer_convert and format.
Support for native functions
In addition to existing support for using JavaScript functions (either inline or defined in external files), new Structure Viewer allows you to define native functions. This also introduces the return statement.
Automatic optimization of sub-expressions
Previous versions of Structure Viewer could automatically optimize constant expressions. New version adds automatic optimization to sub-expressions as well.
New directive
New $alert directive allows you to evaluate an expression at bind time and display the result in a message box.

New UI Features

Support for color schemes
Combined with new color_scheme attribute, allows the customer to apply different color schemes to individual fields in a bound structure.
Structure Library dialog improvements.
Various improvements of the Structure Library dialog.
External structure editor support
Added support for external structure editor.
Improved error detection and reporting

This version dramatically improves syntax error detection and reporting. The editor is now capable of detecting more errors and provides more accurate position for an error. It is also now has so-called “expectation points” in its grammar. For example, in the following code fragment:

public struct A
{
    int a[5;
}; 

A “syntax error” with message "] expected" is displayed. A cursor points to the ‘;’ character.

Change to bind error behavior
Now, when bind error occurs, all items that have already been bound are left in the Structure Viewer. Exception item is added to the end of the list of bound items.
Structure Errors tool window
New tool window displays all compilation and binding errors. You can double-click any entry in a list to display the position of the error.