Thursday, April 29, 2010

Diffrence Between MFC and ATL projects

Microsoft Foundation Classes (MFC)
The C++ class library that Microsoft provides with its C++ compiler to assist programmers in creating Windows-based applications. MFC hides the fundamental Windows API in class hierarchies so that programmers can write a Windows-based application without needing to know the details of the native Windows API.
Microsoft created MFC to make the development of applications for Windows much easier than it was using the SDK.

Active Template Library (ATL)
A C++ template library used to create ActiveX servers and other Component Object Model (COM) objects. ActiveX controls created with ATL are generally smaller and faster than those created with the Microsoft Foundation Classes.
ATL provides a framework to implement the code necessary to create
COM clients and servers. The two frameworks overlap in their usefulness for
developing ActiveX controls.
ATL's purpose in is to save developers from having to rewrite IUnknown,
IDispatch, IClassFactory, and all the hooks for turning regular DLLs and EXEs into
COM-based DLLs and EXEs. In this respect, ATL is a much lighter framework than MFC,
and ATL was designed and built with COM support in mind.

The differences between the two architectures are fairly stark. Generally, MFC enables you to get your project up and running more quickly, but sacrifices flexibility. ATL isn't quite as quick and easy to use, but it is COM-friendly. In addition, ATL appears to be getting easier to use as it matures.


No comments:

Post a Comment