Calum, for gcc compiler you would want
DJGPP which is a DOS/windows port of gcc.
There's alot of nice options for djgpp. I'd suggest you get RHIDE and maybe the RSXWIN libraries.
You really should get a DPMI running in DOS to run the 32-bit protected mode programms generated by DJGPP. Win 3.1x has a built in DPMI server but it is only active when windows 3.1x is loaded and you are working in a DOS box. I think DR-DOS came with one but if you want an open source version go with CWSDPMI.