windows programming environments
Skip this Video
Download Presentation
Windows Programming Environments

Loading in 2 Seconds...

play fullscreen
1 / 4

Windows Programming Environments - PowerPoint PPT Presentation

  • Uploaded on

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

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' Windows Programming Environments' - dusty

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
windows programming environments

Windows Programming Environments

Jim Fawcett

CSE775 – Distributed Objects

Spring 2007

windows programming environments1
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
strengths of each environment
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.
what environments lack
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.