WINDMC(1)

πŸ“¦ version 2.22~msp20120406, in ubuntu jammy

✨ WINDMC(1) ✨

okay bestie, gather round, because this is windmc from the GNU Development Tools collection, and it's literally the moment your message definitions get their glow-up. πŸ’…


🌸 NAME 🌸

windmc β€” generates Windows message resources. yes that's the whole job description, she's an icon, she's a specialist, she does one thing and she ate. πŸ‘‘


πŸŽ€ SYNOPSIS πŸŽ€

windmc [options] input-file

one input file, a whole pile of options, we love a simple entrance. πŸ¦‹


πŸ’– DESCRIPTION πŸ’–

so here's the tea, bestie: windmc reads message definitions from an input file (the .mc file, we love a lil extension moment) and translates them into a set of output files. and the output files can be four different kinds, so let's do a little lineup, shall we? 🧚

  • "h" β€” a C header file containing the message definitions. classic, reliable, shows up to every party. ✨
  • "rc" β€” a resource file compilable by the windres tool. it's giving teamwork, it's giving collaboration. 🫢
  • "bin" β€” one or more binary files containing the resource data for a specific message language. yes, one or more, because she contains multitudes. 🌈
  • "dbg" β€” a C include file that maps message id's to their symbolic name. the little translator of the group, we stan. πŸ’œ

the exact description of these different formats is available in documentation from Microsoft. so like, if you want the full lore, go read the Microsoft docs, no cap. πŸ“š

and when windmc converts from the "mc" format to the "bin" format, "rc", "h", and optional "dbg" β€” she is acting like the Windows Message Compiler. same energy, same vibe, different name tag. 😌


✨ OPTIONS ✨

okay here's the big one, the main event, the options list. every single one, no skipping, we're doing this properly. πŸ‘‘

  • -a, --ascii_in β€” says that the input file you gave her is ASCII. and fun fact bestie, this is the default behaviour, so she's already doing it unless you say otherwise. ✨
  • -A, --ascii_out β€” says that the messages inside the output "bin" files should be in ASCII format. πŸ“
  • -b, --binprefix β€” says that "bin" filenames should have to be prefixed by the basename of the source file. lil name tag situation. 🏷️
  • -c, --customflag β€” sets the customer bit in all message id's. yes, the customer bit. she said "this one's for the customers". πŸ’…
  • -C codepage, --codepage_in codepage β€” sets the default codepage to be used to convert the input file to UTF16. the default is ocdepage 1252. (yes that's exactly how it's written, we don't correct the source material, we respect the source material 😭)
  • -d, --decimal_values β€” outputs the constants in the header file in decimal. default is using hexadecimal output, so this is you choosing chaos... or rather, choosing base ten. πŸ“
  • -e ext, --extension ext β€” the extension for the header file. the default is the .h extension. classic. iconic. unsurprising. πŸ’–
  • -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. iykyk. πŸ”₯
  • -h path, --headerdir path β€” the target directory of the generated header file. the default is the current directory, so she'll just drop it right where you're standing. πŸŽ€
  • -H, --help β€” displays a list of command line options and then exits. she helps and then she leaves, no lingering, main character exit. πŸ‘‘
  • -m characters, --maxlength characters β€” tells windmc to generate a warning if the length of any message exceeds the number you specified. she's not mad, she's just disappointed and also warning you. 😭
  • -n, --nullterminate β€” terminate message text in "bin" files by zero. by default they are terminated by CR/LF. two very different endings, bestie. πŸ’€
  • -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. so like, the flag exists, the feature does not, she's a promise. πŸ™ˆ
  • -O codepage, --codepage_out codepage β€” sets the default codepage to be used to output text files. the default is ocdepage 1252. same little spelling moment as before, we keep it real. πŸ’œ
  • -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 β€” specifies that the input file is UTF16. okay unicode, we see you. ✨
  • -U, --unicode_out β€” specifies that messages in the output "bin" file should be in UTF16 format. and guess what, bestie β€” this is the default behaviour. she's already unicode-ing, you're just confirming it. 🌸
  • -v, --verbose β€” enable verbose mode. she will now tell you everything. and i mean everything. πŸ’…
  • -V, --version β€” prints the version number for windmc. short, sweet, informative. πŸŽ€
  • -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, so like... if you want it, you gotta ask for it. 🫢
  • @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. it's files all the way down, bestie. πŸŒ€


πŸ¦‹ SEE ALSO πŸ¦‹

the Info entries for binutils. go read them, they're right there, they're free, they're waiting. πŸ’œ


Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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".

bestie that's a LOT of years and honestly every single one of them is a slay. πŸ’…

and that's the whole page, periodt. this was binutils-2.21.1, dated 2011-06-27, and yes she's been iconic since before some of us were born. go compile some messages, you've got this. πŸ«Άβœ¨πŸ’–

πŸ“¦ where this page comes from