# EPANET: Header Files

Header Files

The Toolkit provides several header files that are needed to develop C/C++ applications:

- `epanet2.h` contains declarations of the single-threaded version of the Toolkit (the ENxxx named functions).
- `epanet2_2.h` contains declarations of the multi-threaded version of the Toolkit (the EN_xxx named functions).
- `epanet2_enums.h` contains definitions of the symbolic constants used by the Toolkit.
- `epanet2.lib` must be linked in to any Toolkit application compiled for Windows using MS Visual C++.
  Developers need to issue an include directive for either `epanet2.h` or `epanet2_2.h` in their C/C++ code depending on whether they are building a single-threaded or multi-threaded application. There is no need to explicitly include `epanet2_enums.h` as it is automatically included by both of the other header files.

Several additional function declaration files that provide bindings for other programming languages are included with the Toolkit package:

- `epanet2.bas` for Visual Basic for Applications and Visual Basic 6
- `epanet2.vb` for Visual Basic .NET
- `epanet2.pas` for Delphi Pascal, Free Pascal or Lazarus.

These bindings only support the single-threaded version of the Toolkit.