Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between ATL and WTL?

Tags:

c++

windows

atl

wtl

I know "WTL builds on ATL", but what does that mean in practical terms?

Is ATL a subset of WTL in terms of features? (i.e. are ALL features in ATL also present in WTL?) I notice Wikipedia states ATL's development status is "current" whereas WTL's most recent release is from mid-2009. Does that mean if I want to write Windows 7 software using Glass/Aero and other Windows 7 features then I can't do it with WTL? What about ATL?

Is there any performance/memory difference in writing programs in ATL vs WTL?

like image 275
user1002358 Avatar asked Oct 19 '11 04:10

user1002358


People also ask

What is the difference between MFC and ATL?

The Microsoft Foundation Classes (MFC) provide a C++ object-oriented wrapper over Win32 for rapid development of native desktop applications. The Active Template Library (ATL) is a wrapper library that simplifies COM development and is used extensively for creating ActiveX controls.

What is C++ ATL?

The Active Template Library (ATL) is a set of template-based C++ classes developed by Microsoft, intended to simplify the programming of Component Object Model (COM) objects.


1 Answers

ATL is the Microsoft C++ library which primarily implements COM base. A part of it also targets ActiveX controls (which is definitely not a primary goal of the whole library) and it also covers related stuff such as thin wrapper of HWND (CWindow class), string manipulation classes CString, CStringA, CStringW, ANSI/Unicode conversion etc.

A part of ATL was branched off into open source ATL Server library hosted on CodePlex. You can still find some documentation for it on MSDN choosing ATL version back to Visual Studio versions 2002/2003/2005. This mostly covers web development, IIS stuff, and also includes things like regular expressions.

WTL was originally supposed to be used with ATL, and covers GUI related aspects, such as thin wrappers over common controls, GDI object, application GUI framework, frame/video model, custom controls. It provided CString class before ATL started doing so, and this is one of the things where the two libraries overlap. After WTL went opens source and Microsoft provided free version of Visual Studio, WTL was also updated to be used without ATL so that it could be helpful to build apps using free only tools.

like image 53
Roman R. Avatar answered Oct 09 '22 19:10

Roman R.