Object Windows Library

Object Windows Library
Object Windows Library
Developer(s) Originally Borland (now Codegear)
Initial release 1991
Stable release OWLNext 6.30.9 / September 2, 2010; 14 months ago (2010-09-02)
Preview release OWLNext 6.31.5 / June 3, 2010; 17 months ago (2010-06-03)
Development status Active
Written in C++
Operating system Win16, Win32, Win64 and Linux
Type library or framework
License Originally proprietary, now free for personal and commercial usage.
Website [1]

The Object Windows Library (OWL) is a Borland C++ object-oriented framework originally designed for WinAPI. It was used in Turbo Pascal for Windows, Borland Pascal and their Borland C++ package. It was a competitor to the Microsoft Foundation Class Library (MFC).

OWL had incomplete support by the Borland C++ IDE and wasn't always upwardly compatible from release to release. It was eventually deprecated in favor of the Visual Component Library (VCL), which is written in Object Pascal and included in Delphi and C++ Builder Studios.

An open source internet community has released a series of improvements and patches to the original OWL which also allowed newer compilers (BC++ Builder 5, BCC55, BC++ Builder 6, GCC, MSVC++ 6, MSVC 2003, MSVC 2005, MSVC 2008, MSVC 2010, BDS C++ 2006, CodeGear C++ 2007, CodeGear C++ 2009, CodeGear C++ 2010). The project name: OWLNext.

Contents

History

In the early 90s Borland dominated the C++ market. In 1991 Borland introduced Borland C++ 3.0 with 'Application Frameworks' which included Turbo Vision for developing DOS applications and OWL for the Windows platform. C++ was just beginning to replace C for development of commercial specially with the rising of Windows platform (and the complexity that involves) this allowed to OWL to gain some popularity.

The first version implemented a proprietary extension called Dynamic Dispatch Virtual Tables (DDVT), this allowed objects to bind 'events' (windows messages) with 'methods' (functions). This mechanism avoided saturating the OO virtual function system with one function for each window message. In the next version of OWL, DDVT was replaced with a RESPONSE_TABLE, a macro based mechanism, which is maintained today. A conversion tool (OWLCVT) was included to migrate code from OWL1.0 to OWL2.0.

In 1992 Microsoft launched MFC. A DOS version of MFC was short lived. The Windows version was simply a wrapper around WinAPI, and was criticized for not being truly object oriented.

In 1993 Borland launched Borland C++ 2.0 for OS/2 which included a version of OWL 2.0. OWL 2.0 used BIDS, the newer template library for 'container' or 'class library'.

In April 1993 Borland and Novell settled an agreement to port OWL to Novell AppWare Foundation. AppWare Foundation was an API designed by Novell to be cross-platform, allowing deploy apps in Mac, Windows and Unix clients and with several Networks services. The main tools for developing in AppWare were OWL and AppBuilder (a visual tool to link Application Loadable Modules through an 'Application Bus').[1]

In January 1994 Borland launched Borland C++ 4.0 for Windows which also included OWL 2.0. It added Doc/View support, VBX controls, OLE. Win16, Win32s and Win32 was supported (Windows 95, the Win32 successor of Windows 3.x appeared in August 1995).

Late in 1994, Novell CEO Raymond Noorda resigned. Novell expansion plans were reconsidered, AppWare development was stopped and so was OWL for AppWare. In 1995 a group of original team members bought AppBuilder. In the same year, Software UNO (www.uno.com) offered a commercial port for OWL 2.0, to several platforms: AIX 3.2.5, DEC OSF/1 AXP, HP-UX 9.03, Linux 1.2, Solaris 2.x, Sun OS 4.1.x, and SVR4 fox x86, it was called WM_MOTIF. [2]

Early in 1995 Borland C++ 4.5 with OWL 2.5 was launched. As it was launched before Win95, Borland promised a free upgrade for any incompatibility present in the final Windows 95 (when available). Versions 4.51 and 4.52 followed. OWL 2.5 also included the Object Component Framework (OCF) to ease OLE development.

In August 1995 Microsoft released Windows 95 and Visual Studio 4.0. Contrary to popular belief, the inclusion of the MFC40.DLL with Windows 95 did not have a huge impact on the adoption of MFC. By 1995, Visual Studio 1.5 had already eclipsed Borland C++ in shipments, due partly to the volume and quality of documentation included with Visual Studio. The nearly seamless transition of MFC projects from Visual Studio 1.5 and Visual Studio 4.0 also contributed to its popularity. The instability of the original Borland C++ 4.5 and quirky treatment of OWL also persuaded many developers to drop Borland C++ and OWL in favor of Visual C++ and MFC.

In 1996 Borland launched Borland C++ 5 for Windows, which included OWL 5, which was a major revamp of the library. In August 1997 Borland C++ 5.02 was introduced with slightly updated a version of OWL 5. A Japanese edition was also available. Additionally the Borland C++ Builder has included OWL in the 'companion CD'. After that Borland concentrated development in the VCL framework which has been evolving alongside OWL since Delphi 1.0 launched two years before. VCL continues to be the main framework of Borland (now Codegear) for Windows and .NET platforms. Examples on how linkage OWL apps with VCL Forms (Dialogs) were included in the last version of Borland C++. Borland stopped selling Borland C++ 5.02 and OWL in late 1999.

After Borland deprecated OWL, development was taken over by group and is called OWLNext which consists of patches to the original OWL source code.

In 2007 Borland/Codegear launched Borland C++ Builder 2007 which included OWLNext in the partner CD. The CD included VCL/OWL integration examples and some support for Windows Vista development.

In 2010 Embarcadero Technologies (which bought CodeGear from Borland) launched Borland C++ Builder XE which included OWLNext in the partner CD. [3]

Features

OWL applications supports (non-exhaustive list) Single/Multiple Document Interface (SDI/MDI), Doc & View Document Model, Drag&Drop, print and print-preview, GDI encapsulation, Windows Help (Winhelp), mail and messaging (MAPI), Internet (OwlSock/WinSock), OLE 1.0 and OLE 2.0 and other features. The "Borland Windows Custom Controls", an alternative to the standard widget set in Windows 3.1, were available in some versions of OWL, and this support propagated their unique look throughout many applications of the era.

All classes have prefix T (TApplication, TWindow, TFrameWindow, TDialog, TBitmap, etc.). VCL has the same prefix, but in VCL all classes derived from a single mother class: TObject; in OWL there are several root classes, the most common is TWindow from which derived all kind of Windows (TFrameWindow, TDecoratedFrameWindow, TDialog, TInputDialog, TFileOpenDialog, etc.) and even windows controls (TEdit, TStatic, TButton, TGlyphButton, TComboBox, etc.).

Applications made with OWLNext are compatible with DEP/NX feature which defend system against virus/internet attacks. Supports UNICODE even on non-UNICODE Windows systems (95/98/Me).

Advantages

  • Well designed Object oriented framework, provides real encapsulation of Windows APIs, allows inheritance and polymorphism.
  • C++ class for many common Windows resource-related data types that provide automatic closure of handles when the objects creating them go out of scope.
  • Provides a Document/View framework for creating Model-View-Controller-based architectures.
  • OWL comes with BIDS (Borland International Data Structure) a template class library.
  • OWLNext uses the Standard Template Library (STL), which simplifies ports to other platforms.
  • String class included in OWL.
  • Faster executables than Visual Basic P-Code Executables or java.
  • Faster executables than those produced by the .NET Framework.
  • OWLNext developers can use the IDE of their choice: Borland C++ 5.0, Visual Studio 6.0, VS2003, VS2005, BDS2006, BDS2007
  • Windows API can be accessed directly from OWL based programs.
  • Small GUI executables :
    • executables do not require the end-user to have the .NET Framework, which is a 22.4 MB download.
    • executables do not require VB runtime.
  • Executables can use 'static' libraries
  • Several wizards are available for a variety of tasks, including third party tools, which reduced the work to generate the minimal working applications.
  • Fast compilation speed.
  • Ported to Linux, free and open-source solution.
  • Source code included. Developers can build an optimized version for a particular CPU.
  • Namespaces supported.
  • Windows 95 to Windows 7 compatible. Win 3.x supported until OWLNext 6.20.x

Disadvantages

  • Not ported to Mac OS X, WinCE, or .NET.
  • As most libraries based in C++ (MFC, wxWidgets, Qt), C++ language requires a learning curve.
  • Alternatives such as VCL provide rapid application development (RAD).
  • Windows API is not completely covered, requiring deeper knowledge of it.
  • .NET offers a more object oriented, complete, and organized API.
  • Significantly fewer users than MFC.
  • Poor third party support in the form of books, web sites, articles and third party libraries (such as Codejock Software)
  • No native support for reading/writing JPG or PNG files
  • No native XML support

OWLNext: the future of OWL

When Borland deprecated OWL in favor of VCL, a group of developers led by Yura Bidus started the project of maintain the library in 1998. The original websites were http://owlnext.starbase21.com, http://www.webcitation.org/query?url=http://www.geocities.com/SiliconValley/Campus/5642/owlnext.html&date=2009-10-25+09:47:48 and http://members.xoom.com/yuri_b. Currently, the project is hosted in SourceForge: http://owlnext.sourceforge.net or http://www.owlnext.com. The extension is open source, free and the license allows the development of commercial applications.

The original name was OWL NExt, where NExt meaning was New Extensions. Later, it was joined to OWLNExt and currently, it is called OWLNext. The current version as of 2007 is OWLNext 6.20, it's the last version to officially support the Win16 platform.

OWLNext support UNICODE, even allow to deploy UNICODE based applications in Win95. Added support for HTMLHelp.

OWL still is property of Borland and covered by several patents[citation needed], however the version included in the 'Companion CD' for C++Builder can be downloaded from current CodeGear site. It also allows to download the version 6.04 of OWLNext, but the official site for OWLNext is SourceForge.

Original OWL used BIDS (Borland International Data Structure) library as 'class library' (library for managing data structures like vectors, lists, etc.), OWLNext moved to STL (Standard Template Library), and also provides an emulation layer to minimize porting work for existing applications.

Linux support was added to OWLNext in version 6.16 using WINELIB, there are also private ports to Solaris. These ports are now being integrated into the upcoming OWLNext 6.40. The support for Win64 is on the plan. Currently there is no plan to support .NET platform since native Vista will allow better performance.

Books about OWL & Borland C++

There are several books about the C++ / OWL, among these are:

Versions (non-exhaustive list)

Product version OWL version
Borland C/C++ 3.1 OWL 1.0
Borland C/C++ 2.0 for OS/2 OWL 2.0
Borland C++ 4.0x OWL 2.0
Borland C++ 4.5x OWL 2.5
Borland C++ 5.0x OWL 5.0
Borland C++ 5.0x Japanese OWL 5.0
Borland C++ Builder 4.0 OWL 5.0
Borland C++ Builder 5.0 OWL 5.0
Borland / Codegear C++ Builder 2007 OWLNext 6.20
Embarcadero C++ Builder XE OWLNext 6.30
Turbo Pascal for Windows 1.0
Turbo Pascal for Windows 1.5

See also

References

  1. ^ Morgan B. Adair (1994) "The AppWare Foundation: An Overview"
  2. ^ Software UNO Ltd (1997) "Software UNO Products and Services"
  3. ^ Embarcadero Technologies "C++Builder XE Partner DVD"

External links


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • Object Windows Library — (OWL)  библиотека классов, разработанная фирмой Borland для создания оконных приложений на языках Си и Pascal. Данная библиотека использовалась во многих средствах программирования компании Borland, таких как Turbo Pascal for Windows,… …   Википедия

  • Windows library files — Like most modern operating systems, Microsoft Windows supports shared libraries, collections of code which can be used by multiple processes while only being loaded once into memory. Windows terms its shared libraries Dynamic link libraries (DLL… …   Wikipedia

  • Windows Template Library — Тип библиотека (программирование) Разработчик Nenad Stefanovic Написана на С++ Операционная система Microsoft Windows Последняя версия WTL 8.1.11324 (21.11.2011) Лицензия …   Википедия

  • Microsoft Windows library files — Like most modern operating systems, Microsoft Windows supports shared libraries, collections of code which can be used by multiple processes while only being loaded once into memory. Windows terms its shared libraries Dynamic link libraries… …   Wikipedia

  • Windows API — (англ. application programming interfaces)  общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Microsoft Windows корпорации «Майкрософт» и совместимой с ними свободной… …   Википедия

  • Windows Application Programming Interface — Windows API (application programming interfaces) общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Windows и Windows NT корпорации «Майкрософт». Является самым прямым способом… …   Википедия

  • Sound Object (SndObj) Library — The Sound Object (SndObj) Library is a C++ object oriented programming library for music and audio development. It is composed of 100+ classes for signal processing, audio, MIDI and file IO and is available, cross platform, for Linux, Windows,… …   Wikipedia

  • Windows API — The Windows API, informally WinAPI, is Microsoft s core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. It was formerly called the Win32 API; however, the name Windows API more accurately… …   Wikipedia

  • Windows Presentation Foundation — This subsystem is a part of .NET Framework 3.0 Developed by Microsoft, the Windows Presentation Foundation (or WPF) is a computer software graphical subsystem for rendering user interfaces in Windows based applications. WPF, previously known as… …   Wikipedia

  • Windows Presentation Foundation — WPF в составе .NET Framework Windows Presentation Foundation (WPF[1])  система для построения клиентских приложений Windows с визуально привлекательными возможностя …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”