compiler-defined #defines so you can write cross-platform code better.
one source code, multiple targets (djgpp, 9x/me, nt-family, vista/7).

I have a web page with a g++ wrapper batch file that makes vista/7-compatible code by adding a manifest XML windows resource, which you supply parameters.  it switches out compiler(s) of your choice.  you only get to choose between a 32-bit and a 64-bit target compiler.
the batch file has built-in help, albeit lengthy, so make sure your command shell has a long enough layout buffer, at least 100 lines - I usually choose 9900.

I have a "common compiler switches" web page.
it lists the most useful of the gcc compiler switches I have discovered along the way.

common compiler #defines page: at

any additions to these pages welcome.

what I don't have is the mingw switches and command-line for making DLL's.
any contribution would only help me help someone else, and I could augment my g++ wrapper batch file.

Jim Michaels (my site)
(Do Life Computers group site which I lead)

while (stone != rolling) moss++;
Computer memory/disk size measurements:
[KB KiB] [MB MiB] [GB GiB] [TB TiB]
Note that with disks, a disk size is measured in GB or TB, not in GiB or TiB.  computer memory (RAM) is measured in MiB and GiB.
Robot dog food: Cables n' Bits
adress=seg<<4+ofs;  (ambiguity - a double-minded compiler is unstable in all its ways)
biosdsk2.h:733: warning: suggest parentheses around '+' inside '<<'