WINDMC(1) GNU Development Tools WINDMC(1)

# [NAME](#NAME)

windmc - generates Windows message resources

# [SYNOPSIS](#SYNOPSIS)

windmc \[options] input-file

# [DESCRIPTION](#DESCRIPTION)

**windmc** reads message definitions from an input file (.mc) and translate them into a set of output files. The output files may be of four kinds:

"h"

A C header file containing the message definitions.

"rc"

A resource file compilable by the **windres** tool.

"bin"

One or more binary files containing the resource data for a specific message language.

"dbg"

A C include file that maps message id's to their symbolic name.

The exact description of these different formats is available in documentation from Microsoft.

When **windmc** converts from the "mc" format to the "bin" format, "rc", "h", and optional "dbg" it is acting like the Windows Message Compiler.

# [OPTIONS](#OPTIONS)

[**-a**](#a)

[**--ascii\_in**](#ascii_in)

Specifies that the input file specified is ASCII. This is the default behaviour.

[**-A**](#A)

[**--ascii\_out**](#ascii_out)

Specifies that messages in the output "bin" files should be in ASCII format.

[**-b**](#b)

[**--binprefix**](#binprefix)

Specifies that "bin" filenames should have to be prefixed by the basename of the source file.

[**-c**](#c)

[**--customflag**](#customflag)

Sets the customer bit in all message id's.

[**-C** *codepage*](#C)

[**--codepage\_in** *codepage*](#codepage_in)

Sets the default codepage to be used to convert input file to UTF16. The default is ocdepage 1252.

[**-d**](#d)

[**--decimal\_values**](#decimal_values)

Outputs the constants in the header file in decimal. Default is using hexadecimal output.

[**-e** *ext*](#e)

[**--extension** *ext*](#extension)

The extension for the header file. The default is .h extension.

[**-F** *target*](#F)

[**--target** *target*](#target)

Specify the BFD format to use for a bin file as output. This is a BFD target name; you can use the **--help** option to see a list of supported targets. Normally **windmc** will use the default format, which is the first one listed by the **--help** option.

[**-h** *path*](#h)

[**--headerdir** *path*](#headerdir)

The target directory of the generated header file. The default is the current directory.

[**-H**](#H)

[**--help**](#help)

Displays a list of command-line options and then exits.

[**-m** *characters*](#m)

[**--maxlength** *characters*](#maxlength)

Instructs **windmc** to generate a warning if the length of any message exceeds the number specified.

[**-n**](#n)

[**--nullterminate**](#nullterminate)

Terminate message text in "bin" files by zero. By default they are terminated by CR/LF.

[**-o**](#o)

[**--hresult\_use**](#hresult_use)

Not yet implemented. Instructs "windmc" to generate an OLE2 header file, using HRESULT definitions. Status codes are used if the flag is not specified.

[**-O** *codepage*](#O)

[**--codepage\_out** *codepage*](#codepage_out)

Sets the default codepage to be used to output text files. The default is ocdepage 1252.

[**-r** *path*](#r)

[**--rcdir** *path*](#rcdir)

The target directory for the generated "rc" script and the generated "bin" files that the resource compiler script includes. The default is the current directory.

[**-u**](#u)

[**--unicode\_in**](#unicode_in)

Specifies that the input file is UTF16.

[**-U**](#U)

[**--unicode\_out**](#unicode_out)

Specifies that messages in the output "bin" file should be in UTF16 format. This is the default behaviour.

[**-v**](#v)

[**--verbose**](#verbose)

Enable verbose mode.

[**-V**](#V)

[**--version**](#version)

Prints the version number for **windmc**.

[**-x** *path*](#x)

[**--xdgb** *path*](#xdgb)

The path of the "dbg" C include file that maps message id's to the symbolic name. No such file is generated without specifying the switch.

**@file**

Read command-line options from *file*. The options read are inserted in place of the original @*file* option. If *file* does not exist, or cannot be read, then the option will be treated literally, and not removed.

Options in *file* are separated by whitespace. A whitespace character may be included in an option by surrounding the entire option in either single or double quotes. Any character (including a backslash) may be included by prefixing the character to be included with a backslash. The *file* may itself contain additional @*file* options; any such options will be processed recursively.

# [SEE ALSO](#SEE_ALSO)

the Info entries for *binutils*.

# [COPYRIGHT](#COPYRIGHT)

Copyright (c) 1991-2026 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

2026-10-26 binutils-2.47

---

Document: windmc(1) from binutils 2.47-r2 (Chainguard OS)
Source: https://gitlab.com/gnutools/binutils-gdb.git
