|
25 Years of Programming
An open source source for C, C++, OWL, BASIC, MDB, XLS, DOT, and more... |
Home Projects Up Sitemap Search Blog Forum+Chat About Us Privacy Terms of Use Feedback FAQ Images Services Payments Humor Music |
Programs and classes in Borland C++ 4.0 ObjectWindows Library OWL 2.0ObjectWindows Library was Borland's object oriented encapsulation of the Windows API. Treating Windows objects as standard C++ objects with member variables, member functions, and functions for responding to Windows messages (later to be called properties, methods, and events) made it much easier to learn how to write a Windows GUI program. The Borland C++/OWL package included the OWL source code, 7 printed books (2,715 pages) of well-written reference documentation and walk-through tutorials, plus example projects demonstrating how to use nearly every OWL feature. Back in the days before free trial downloads, this was a tremendous bargain in educational materials even at its price of $329. It made learning C++ and Windows programming fun. These projects were ones I developed while learning. In support of the OWLNext project (described further down this page), the Borland spin-off company Embarcadero Technologies has released OWL, including source code, for download at http://cc.embarcadero.com/item/24574. ----- Each project link below goes to a separate page with a more complete program description, a code listing, and, if the project is large, a link for downloading its zip file. The Images link at the top of this page goes to image galleries created by several of these programs. ObjectWindows Library ProgramsText link goes to the project page. Thumbnail link goes to full-sized image.
OWL-based utility classes
Other OWL pages
Bugs
Windows 3.1-compiled OWL code does not run in Windows XPThese programs were all written in the Borland C++ 4.0 IDE. When I compile them in that environment on my Windows 3.1 computer and copy the executables to my Windows XP computer, they will not run properly. They crash on launch with an error something like GDI Error or GDI Failure. They crash regardless whether they were compiled for a Win16 or Win32 target (Win32s), even if the exact same executables run perfectly in Windows 3.1 with Win32s. I don't know the cause. Windows XP's backwards compatibility is supposed to be good. There must either be code common to all my programs that was allowable in Windows 3.1 but not in XP, or there is something in the OWL 2.0 infrastructure that is no longer allowable in WinXP. So far I've found no simple fix or work-around, but the solution that might be most likely to succeed, which I have not tried, is in the next section. OWLNextOWL has been ported to Windows 95/98/NT/2000/XP/Vista and Linux by a project called OWLNext. To use it, first install the last official version of OWL, Version 5, from Embarcadero Technologies. Then install OWLNext to upgrade OWL to OWLNext. The OWLNext site also has a comprehensive set of OWL resources that includes articles, tutorials, OWL projects, links to other OWL-related sites, and more. The OWL Usenet discussion group is a place to ask OWL-related questions. Converting programs from ObjectWindows to Microsoft Visual C++ .NETThe reason I didn't make much of an effort to extend the life of my OWL programs was that when I finally got a Windows XP computer, I was most interested in learning something new, even if it meant completely rewriting the programs over a long period of time. It turns out to be relatively easy to convert Borland OWL code to Microsoft Visual C++ and .NET even though the process is a rewrite more than a conversion. I've created this forum thread to describe some of the issues involved, and for discussion. Text substitutions are often all that's required to convert Borland's BIDS TArray classes to the Standard Template Library. The two are reasonably similar. Screen elements like windows, menus, and other objects must be built from scratch, but the Visual C++ form designer interface makes that relatively easy. The hard part was designing the elements in the first place, and that's already done. Learning the new .NET Framework equivalents of the OWL methods can be difficult and time-consuming, but the .NET methods are incredibly powerful and the results are very good. I've done a few project conversions so far. If you have your own OWL code to convert, comparing the two versions might provide you with tips how to proceed. |
|
|
|