Previous Topic Next topic Print topic


Converting Header Files Using the H2cpy Utility

The Header-to-copy utility can be run directly from the command line or it can be invoked automatically using the PREPROCESS(headers) Compiler directive. The Headers preprocessor allows C header files, with an extension of .h, to be specified in a COPY statement in a COBOL source file. The preprocessor recognizes these as C header files and uses the Header-to-copy utility to convert them. This can be very convenient for relatively small header files.

To invoke the Header-to-copy utility from the command line, type:

h2cpy {[filename] [option]} ...

where the parameters are:

filename The C-language header file to be converted to a COBOL copybook
option An H2cpy command-line option

If you do not specify option or filename, a list of available options is displayed.

Note: C header files that require other header files that have been previously processed in the same run cannot be processed on their own by the C compiler. Similarly, H2cpy can only translate a standalone header file, or a complete set of header files. Any macro-names that need specifying in the C compiler command line, and any macros predefined by a particular compiler, might need to be specified on the H2cpy command line. For example, Microsoft-specific predefined macros include:
  • CHAR_UNSIGNED
  • _CPPUNWIND
  • _DLL
  • _M_IX86
  • _MSC_VER
  • _MT
  • _WIN32
  • _CPPRTTI
  • _M_ALPHA
  • _M_MPPC
  • _M_MRXOOO
  • _M_MPPC
  • _MFC_VER
  • _MT

Do not specfiy the __cplusplus macro as H2cpy is not suitable for C++ headers.

ANSI C predefined macros that might need to be specified on the command line using the -D option include:

  • __DATE__
  • __FILE__
  • __LINE__
  • __STDC__
  • __TIME__
  • __TIMESTAMP__

Groups of macro definitions can be held in the h2cpy.dir file. See the h2cpy option -G option for details.

Previous Topic Next topic Print topic