It depends on your needs.
Using the CLR will provide you with the most expressive set of libraries (the entire .NET platform) by limiting your executable file to the requirement to install the .NET Framework at run time, as well as restricting the use of Windows (however, all 4 of these technologies are just windows, so the platformβs limitation is, probably the least problematic).
However, the CLR requires using the C ++ / CLI extensions for the C ++ language, so you need to learn some additional language features to use this. This gives you a lot of βextra features,β such as access to .net libraries, complete garbage collection, etc.
ATL and MFC are slightly more difficult to solve. I would like to refer you to the MSDN page for a choice , to decide between them. The best part about ATL / MFC is that you do not need the .NET platform, but only VC / MFC runtimes must be installed for deployment.
Using Win32 directly provides the smallest executable files with the smallest dependencies, but works more on recording. You have the least support libraries, so you write more code.
Reed Copsey May 04 '09 at 19:53 2009-05-04 19:53
source share