I am fairly new to c++. What is the diffrence between ATL, CLR, or MFC and for what are they used for.

MFC is Microsoft Foundation Class and the oldest of the three. It is mostly wrapper functions for win32 api functions, and makes windows programming pretty easy. Requires a very good foundation and knowledge of c++.

ATL (Active Template Library) is somewhat similar to MFC but revolves around C++ templates and doesn't contain all the bulk that comes along with MFC.

CLR is the newest of the three (I don't recall what that acronym stands for) and has nothing at all to do with writing MS-Windows programs but instead is a way of writing what Microsoft terms Managed Programs. I don't really know much more than that about it because I have not used it.