WINDMC(1)

๐Ÿ“ฆ
version 2.45.1 ยท 5 versions
, in alpine 3.23

๐Ÿ’Œ WINDMC(1) โ€” GNU Development Tools

okay so bestie, pull up a chair because we're talking about windmc, the icon of the binutils world, from the GNU Development Tools lineup โœจ


๐ŸŒธ NAME

windmc โ€” generates Windows message resources ๐ŸŽ€


๐Ÿฆ‹ SYNOPSIS

windmc [options] input-file

๐Ÿ’– DESCRIPTION

windmc reads message definitions from an input file (.mc) and translates them into a whole little family of output files ๐Ÿซถ. And like, the output files can be one of four kinds, no cap:

  • "h" โ€” a C header file that's holding all the message definitions ๐Ÿ‘‘
  • "rc" โ€” a resource file, and this one is 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, iykyk ๐Ÿ“š

So when windmc converts from the "mc" format to the "bin" format, "rc", "h", and optional "dbg" โ€” it is literally acting like the Windows Message Compiler ๐Ÿ’€ periodt.


โœจ OPTIONS โœจ

  • -a, --ascii_in โ€” says the input file you handed over is ASCII. This is the default behaviour, so it's giving low-effort but make it official ๐ŸŒˆ
  • -A, --ascii_out โ€” says the messages inside the output "bin" files should be in ASCII format ๐Ÿ“
  • -b, --binprefix โ€” says the "bin" filenames have to be prefixed by the basename of the source file ๐Ÿท๏ธ
  • -c, --customflag โ€” sets the customer bit in all message id's ๐Ÿ”ฅ
  • -C codepage, --codepage_in codepage โ€” sets the default codepage used to convert the input file to UTF16. The default is ocdepage 1252 ๐Ÿงš
  • -d, --decimal_values โ€” outputs the constants in the header file in decimal. Default is using hexadecimal output ๐Ÿ”ข
  • -e ext, --extension ext โ€” the extension for the header file. The default is .h extension ๐Ÿ’ซ
  • -F target, --target target โ€” specify the BFD format to use for a bin file as output. This is a BFD target name, and 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, --headerdir path โ€” the target directory of the generated header file. The default is the current directory ๐Ÿ“
  • -H, --help โ€” displays a list of command-line options and then exits. the classic "help me help you" move ๐Ÿซถ
  • -m characters, --maxlength characters โ€” instructs windmc to generate a warning if the length of any message exceeds the number specified โš ๏ธ
  • -n, --nullterminate โ€” terminate message text in "bin" files by zero. By default they are terminated by CR/LF ๐Ÿšฆ
  • -o, --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, --codepage_out codepage โ€” sets the default codepage used to output text files. The default is ocdepage 1252 ๐ŸŒธ
  • -r path, --rcdir path โ€” 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, --unicode_in โ€” says the input file is UTF16 ๐Ÿ’œ
  • -U, --unicode_out โ€” says the messages in the output "bin" file should be in UTF16 format. This is the default behaviour ๐Ÿ‘‘
  • -v, --verbose โ€” enable verbose mode. she's chatty now ๐Ÿ’ฌ
  • -V, --version โ€” prints the version number for windmc ๐Ÿ†
  • -x path, --xdgb path โ€” 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

the Info entries for binutils ๐Ÿซถ


Copyright (c) 1991-2025 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" ๐Ÿ“œ


and that's the whole page, bestie โ€” sign-off time: this was binutils-2.45.1, dated 2025-11-24, and you can literally cite it as the WINDMC(1) manual ๐ŸŽ€โœจ mwah ๐Ÿ’…

๐Ÿ“ฆ where this page comes from