Detailed Description

This class provides functions that write binary data types in a portable way.

Data can be written in either big-endian or little-endian format, little-endian being the default on all architectures but BigEndianOrdered() can be used to change this. The default format for the floating point types is 80 bit "extended precision" unless wxUSE_APPLE_IEEE was turned off during the library compilation, in which case extended precision is not available at all. You can call UseBasicPrecisions() to change this and use the standard IEEE 754 32 bit single precision format for floats and standard 64 bit double precision format for doubles. This is recommended for the new code for better interoperability with other software that typically uses standard IEEE 754 formats for its data, the use of extended precision by default is solely due to backwards compatibility.

Constructor & Destructor Documentation

Note that the conv parameter is only available in Unicode builds of wxWidgets.

Parameters

stream

The output stream.

conv

Charset conversion object used to encoding Unicode strings before writing them to the stream in Unicode mode (see WriteString() for a detailed description). Note that you must not destroy conv before you destroy this wxDataOutputStream instance! It is recommended to use the default value (UTF-8).

Disables the use of extended precision format for floating point numbers.

This method disables the use of 80 bit extended precision format for the float and double values written to the stream, which is used by default (unless wxUSE_APPLE_IEEE was set to 0 when building the library, in which case the extended format support is not available at all and this function does nothing).

After calling it, float values will be written out in one of IEEE 754 "basic formats", i.e. 32 bit single precision format for floats and 64 bit double precision format for doubles.

Since

2.9.5

void wxDataOutputStream::UseExtendedPrecision

(

)

Explicitly request the use of extended precision for floating point numbers.

This function allows the application code to explicitly request the use of 80 bit extended precision format for the floating point numbers. This is the case by default but using this function explicitly ensures that the compilation of code relying on producing the output stream using extended precision would fail when using a version of wxWidgets compiled with wxUSE_APPLE_IEEE==0 and so not supporting this format at all.

If UseBasicPrecisions() had been called, the value is written out using the standard IEEE 754 32 bit single precision format. Otherwise, this method uses the same format as WriteDouble(), i.e. 80 bit extended precision representation.

Actually, this method writes the size of the string before writing string itself.

In ANSI build of wxWidgets, the string is written to the stream in exactly same way it is represented in memory. In Unicode build, however, the string is first converted to multibyte representation with conv object passed to stream's constructor (consequently, ANSI applications can read data written by Unicode application, as long as they agree on encoding) and this representation is written to the stream. UTF-8 is used by default.