WINDMC(1)

πŸ“¦
version 2.44 Β· 3 versions
, in debian trixie

πŸ’– NAME πŸ’–

okay so bestie, meet windmc from the GNU Development Tools lineup β€” she generates Windows message resources. that's the whole gig. slay.


✨ SYNOPSIS ✨

windmc [options] input-file

πŸŽ€ DESCRIPTION πŸŽ€

so windmc reads message definitions out of an input file (the .mc file, iykyk) and translates them into a whole lil set of output files. and there are four kinds of output files, periodt:

  • "h" β€” a C header file that contains the message definitions.
  • "rc" β€” a resource file that's compilable by the windres tool.
  • "bin" β€” one or more binary files holding 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 lives in documentation from Microsoft, bestie, not here. πŸ™ˆ

when windmc converts from the mc format to the bin format, rc, h, and the optional dbg, she's acting like the Windows Message Compiler. main character behavior honestly. πŸ‘‘


πŸ’… OPTIONS πŸ’…

  • -a, --ascii_in β€” says the input file you gave her is ASCII. this is the default behavior, no cap. ✨
  • -A, --ascii_out β€” says the messages in the output bin files should be in ASCII format.
  • -b, --binprefix β€” says the bin filenames gotta be prefixed by the basename of the source file.
  • -c, --customflag β€” sets the customer bit in all message id's. very demure.
  • -C codepage, --codepage_in codepage β€” sets the default codepage used to convert the input file to UTF16. the default is ocdepage 1252. (yes the manpage literally says "ocdepage" β€” we don't make the rules 😭)
  • -d, --decimal_values β€” outputs the constants in the header file in decimal. default is hexadecimal output.
  • -e ext, --extension ext β€” the extension for the header file. default is the .h extension.
  • -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 uses 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. default is the current directory.
  • -H, --help β€” displays a list of command-line options and then exits. bye bestie 🫢
  • -m characters, --maxlength characters β€” tells windmc to generate a warning if the length of any message exceeds the number you specified. she's watching πŸ‘€
  • -n, --nullterminate β€” terminate message text in bin files by zero. by default they're terminated by CR/LF.
  • -o, --hresult_use β€” not yet implemented, bestie, don't get your hopes up. instructs windmc to generate an OLE2 header file, using HRESULT definitions. status codes are used if the flag isn't specified.
  • -O codepage, --codepage_out codepage β€” sets the default codepage used to output text files. the default is ocdepage 1252. (again with the ocdepage, iconic honestly πŸ’€)
  • -r path, --rcdir path β€” the target directory for the generated rc script and the generated bin files that the resource compiler script includes. 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 behavior. ⭐
  • -v, --verbose β€” enable verbose mode. she will yap (affectionately).
  • -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. no switch, no file, periodt.
  • @file β€” read command-line options from file. the options read are inserted in place of the original @file option. if file doesn't exist, or can't be read, then the option gets treated literally, and is 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. it's giving nesting doll energy πŸͺ†

πŸ‘‘ SEE ALSO πŸ‘‘

the Info entries for binutils. go read them bestie, they're right there. πŸ“š


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".


okay that's the whole thing, you ate that πŸ’…βœ¨ this came from binutils-2.44, dated 2025-03-28 β€” go forth and compile, bestie, mwah πŸŽ€πŸ¦‹πŸ’–

πŸ“¦ where this page comes from