1 / 4

Windows Programming Environments

Windows Programming Environments. Jim Fawcett CSE775 – Distributed Objects Spring 2007. Windows Programming Environments. Win32 API:

dusty
Télécharger la présentation

Windows Programming Environments

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Windows Programming Environments Jim Fawcett CSE775 – Distributed Objects Spring 2007

  2. Windows Programming Environments • Win32 API: • virtually all of the programming functionality directly or indirectly used in any Windows program, e.g., I/O, windows, controls, threads, sockets and other IPC, memory management, device management • C++ Std Libraries: • Console I/O, file abstraction, math, STL containers …, memory allocation, … • Visual Studio Libraries and Facilities: • Dialog designers, thread abstraction, COM related wrappers – smartpointers, BSTRs, … • COM Libraries and Run-Time: • Support for component models, e.g., definition of interfaces, management of lifetime, image packaging in DLLS and EXEs, persistence, structured storage, RPC … • ATL Libs: • Wrappers around COM that simplify its programming model, wrappers for COM types and smart pointers • WTL: • Wrappers around Win32 windows and controls that provide a light-weight GUI framework • MFC: • Classes, macros, and data structures that support the development of GUI applications in a heavy weight framework • .Net Managed Environment: • New execution model, wrapping of most of the Win32 API, library facilities that cover most of the C/C++ library functionality in a manner consistent with its managed environment, WinForms - a medium weight GUI framework

  3. Strengths of Each Environment • Win32 • Natively provides windows, controls, memory management, process management, threads, directory and file management, access to Registry. • C++ • Widely supported and powerful object model, very well designed abstractions for console I/O, file management, containers, math. • Visual Studio Libraries • Smoothly integrates into all the Windows programming environments. Supports a COM-based programming model. • COM • Early and effective support for Component Engineering, allowing modifications to parts of large complex systems without rebuilding the entire system. • ATL • Efficiently and effectively hides a lot of COM’s complexity and weak encapsulation. • WTL • Very light weight and flexible wrapping of Windows many GUI facilities. Integrates well with ATL programming model. • MFC • Rapid development of complex user interfaces, provided that you want to use its models. • .Net Managed Environment • Elegant and well encapsulated wrapping of most of the Win32 API. Provides a very easy to use GUI framework, supports managed code.

  4. What Environments Lack • Win32 • No objects directly usable by applications • Byte and address oriented, no high-level types • C++ • No threads, sockets, directory management, windows • Visual Studio Libraries • Just support for other programming environments • COM • Weak object model - no inheritance of implementation, very limited types, weak encapsulation • Weak networking, no windows • ATL • Weak windowing, no networking other than COM’s limited facilities. • WTL • Focuses exclusively on providing support for GUIs, not supported by Microsoft • MFC • Focuses mostly on providing support for GUIs with a ridgid architectural model • .Net Managed Environment • Requires run-time and libraries not found by default on Windows systems (that will change with Vista), uses a shallow reference object model, not ideal for some applications, e.g., scientific programming and memory intensive applications like medical imaging.

More Related