MDF4 Lib
Function Library for Reading and Writing MDF3 and MDF4 Files

High-Performance Function Library for Reading and Writing MDF3 and MDF4 Files

MDF4 Lib is a powerful function library; in its base variant you can use it to validate and sort MDF files as well as read them into your own applications.

The new ASAM-standardized MDF4 is supported in addition to the widely used MDF3 format. Base variant can be expanded by adding an option that supports writing files, allowing users to create and read MDF files. The library offers a convenient interface, which you can use to access signal data and supplemental information in an MDF file, regardless of the specific MDF version (3.x/4.x).

Graphic MDF4 Lib
Function library MDF4 Lib integrates measurement data formats like MDF3 and MDF4 easily and quickly in your applications


  • Easy to use function library for generating*, validating**, sorting** and reading MDF files
  • Version-independent access to MDF3 and MDF4 formats
  • Quick and memory-optimized opening of multiple MDF files
  • Efficient reading of signal data for sorted files
  • Easy generation of MDF objects and writing of signal data for the offline use case*
  • Convenient access to various types of MDF meta information
  • Seamless data transfer from Vector tools and data loggers, which offer MDF as an output or export format
  • Use of a tested and practice proven standard component reduces effort for training, development, testing and maintenance

* Functionality of optional available "write option"

** Functionality is currently available in Windows only

Highlights Version 1.6

  • Signal data with data type "Half-Precision Floating-Point" (Float16) can be read in. This type will be supported as of ASAM MDF Version 4.2 (release planned for 2018).
  • You can rewrite the MDF files to remove unused data areas, e.g. after deletion of attachments.
  • More efficient reading and writing of array signals with one function call by reading or writing specific bytes from/to a record independently of the channel.
  • When multiple signal values are read with a single call (MultiRead methods), a new option allows to ignore certain warnings, which simplifies the use of the methods.
  • Additional options for the built-in debug logging which are especially useful for running MDF4 Lib in server applications like switch of the debug log file each day or automatic deletion of too old log files.
  • It is possible to finalize not yet finished MDF 4.x files that were written by MDF4 Lib, for example to restore the file following premature termination of the main application, for instance due to a power off or a system crash.


  • Multiple MDF files may be opened or generated* starting from a central File Manager Object. Related sub-objects might also be read or written, depending on the desired information. The specific objects and their methods are accessed via interface pointers. This lets you evaluate the MDF features independent of the MDF version.
  • For quick access to signal values, the MDF files can be sorted** before opening. In writing*, the MDF4 Lib only supports generation of already sorted MDF files, i.e. only records for one sampling rate may be written at a time (offline use case).
  • MDF4 Lib can be used to validate MDF files, i.e. check them for possible format errors or inconsistencies, e.g. before being imported into an archiving system. The object orientation and hierarchical structuring of the interface (API) lets users quickly learn and intuitively apply the available functionality. A detailed online Help and sample projects with documented source code permit quick training without requiring detailed knowledge of the MDF format. IntelliSense - which is available in modern development environments such as MS Visual Studio - also supports you in quick and convenient coding.
  • The generation of objects "on demand" and their management by "reference counting" permit efficient and resource-economic implementations. In C++, when the supplied “smart pointer” class is used, it is even possible to omit an explicit release of the objects. This approach helps to avoid resource leaks. It also reduces the scope and complexity of your code, which generally improves its maintainability and readability.
  • All library calls are thread-safe. The library thus may be used in a multi-threading use case, e.g. to evaluate each MDF file in a separate thread. Additional optimizations may be enabled for this case.
  • For diagnostics, the logging capabilities of MDF4 Lib can be used to log any error and warning messages or optionally all library calls. In addition to logging these messages to a file, they alternatively may be a collected by a callback routine, e.g. for custom evaluation or display.
  • If the writing* of an MDF file is terminated unexpectedly, e.g. due to power off or a tool crash, it might no longer be possible to properly finalize the file. The MDF4 Lib marks such an MDF file as "unfinalized" according to ASAM COMMON MDF 4.1.1. During read-in, the MDF4 Lib recognizes MDF files that are marked as unfinalized. MDF4 Lib might be able to finalize** such a file at a later time, depending on the tool that generated it or the type of finalization steps that are missing.
  • The MDF4 Lib is available both as unicode and as multi-byte string (MBCS) veriant. You can use the variant that matches your project settings to avoid time-consuming and cumbersome string conversions.

* Functionality of optional available "write option"

** Functionality is currently available in Windows only


The base variant can be extended by a “write option” that makes it possible not only to read, but also to generate MDF files. As is the case with reading, all MDF versions are also supported in writing.

Product Descriptions

Fact Sheet:

Product Information:


Show more

System Requirements for Windows:

  • C++ Interface: Microsoft Visual C++ Version 6.0 or higher
  • .NET Interface: Microsoft .NET 4.0 framework or higher and respective .NET language (e.g. Microsoft Visual C#)
  • Windows 10/8.1/8/7
  • For access to XML features with MDF4, in addition the Microsoft MSXML Parser V6 is required

System Requirements for Linux:

  • C++ Interface: GNU Compiler GCC C/C++ Version 4.8.3 or higher
  • Linux system with x86_64 architecture
  • Required system libraries: libc6, libstdc++6, libpthread, libdl
  • For access to XML features in MDF4, the XML Parser libxml2 is also required
Show more