WINDMC(1)
π WINDMC(1) β GNU Development Tools π
okay bestie, buckle up, because this is the manpage for windmc (that's the manual name, right there at the top, in case you were wondering β¨) β and it is genuinely a little icon. it generates Windows message resources. that's the whole vibe. let's get into it. π
β¨ NAME β¨
windmc β generates Windows message resources π¦
πΈ SYNOPSIS πΈ
windmc [options] input-file
π DESCRIPTION π
so windmc reads message definitions from an input file (the .mc file, iykyk) and translates them into a whole little set of output files. it's giving translator, it's giving multitasker.
the output files can be one of four kinds, and yes we're listing all of them:
"h"β a C header file containing the message definitions."rc"β a resource file compilable by thewindrestool. slay."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 (not me, go ask them π).
when windmc converts from the "mc" format to the "bin" format, "rc", h, and optional dbg, it is acting like the Windows Message Compiler. literally the same gig, no cap.
π¦ OPTIONS π¦
kay so here's every single flag, all 40-ish of them, nobody gets left out. π
-a,--ascii_inβ tells it the input file you specified is ASCII. this is the default behaviour, so like... it's already doing this. but you can say it out loud. π-A,--ascii_outβ says the messages in 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. cute little name tag π·οΈ-c,--customflagβ sets the customer bit in all message id's.-Ccodepage,--codepage_incodepage β 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, so this switches it up.-eext,--extensionext β the extension for the header file. the default is.hextension.-Ftarget,--targettarget β specify the BFD format to use for abinfile as output. this is a BFD target name; you can use the--helpoption to see a list of supported targets. normallywindmcwill use the default format, which is the first one listed by the--helpoption. π-hpath,--headerdirpath β 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. your classic.-mcharacters,--maxlengthcharacters β instructswindmcto generate a warning if the length of any message exceeds the number specified. it's giving length check, it's giving concerned friend π«Ά-n,--nullterminateβ terminate message text in"bin"files by zero. by default they are terminated by CR/LF.-o,--hresult_useβ not yet implemented, bestie π instructs"windmc"to generate an OLE2 header file, using HRESULT definitions. status codes are used if the flag is not specified.-Ocodepage,--codepage_outcodepage β sets the default codepage to be used to output text files. the default is ocdepage 1252.-rpath,--rcdirpath β 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, so again, she's already doing it. π-v,--verboseβ enable verbose mode. she will yap (helpfully).-V,--versionβ prints the version number forwindmc.-xpath,--xdgbpath β 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 nothing happens unless you actually ask, fr fr.@file β read command-line options from file. the options read are inserted in place of the original@fileoption. 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 giving inception, it's giving turtles all the way down π’
π SEE ALSO π
the Info entries for binutils. go read 'em, they're iconic. β¨
π 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". π«Ά
mwah, that's the whole page π β binutils-2.46.1, dated 1980-01-01, and that's your sign-off bestie, go compile something cute. π§ββοΈπ
π¦ where this page comes from
- nixpkgs unstable: coreboot-toolchain-aarch64 26.09
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms