Code::Blocks can use any main stream compiler (except for Clang and a few others that aren't widely known), Dev-C++ uses MinGW, and VC++ is confusing because when someone says VC++, they mean both the IDE and the compiler but VC++ mainly refers to the GUI it provides. It's also valid to say something like, "I use VC++ in Code::Blocks" which is confusing but refers to the compiler toolset that VC++ provides.