MessageBox works only on windows (and windows emulators). windows comes with that function. "windows.h" tells the compiler you want to use windows specific functions. Without it the compiler wouldn't know what the heck a "MessageBox" function is. Each *.h file tells the compiler about new functions you can use.