Sunday, February 15, 2009

What is Xbase++ (Updated 9th March 2009)

I first discovered xBase ++ way back in 1997 and even purchased the Early Experience Version With quite a bit of effort (then), I did managed to create a 32-bit EXE but was put off by the fact that the resultant EXE was huge and for it to work, one needs to install quite a number of DLLs. However, I must say that I was impressed with the documentation.

Relevant Quotations from Guest Book

1. " I have being using xBase++ for about 10 years now. My conclusion is that this is a better CLIPPER than CLIPPER multiple folds. Clipper is Alive and WELL. "

Owoyemi Joseph Olusegun
NIGERIA, Kaduna, 25/2/09
2. "Then came Xbase++, probably in 1998, and then I was filled with joy that this is exactly I wanted. Straight forward I subscribed to it, and continue to subscibe till date, though do not plan in the future. After few months I could convert my applications running on Xbase++. I was amused by the multi-threading modal and its capabilities to mix GUI and CUI elements on one screen. It paved the way for Clipper code to be migrated to Windows world. I was/is a dire fan of its XbpParts* class modal which implemented a standard way of objecthirarchy and parameters. I also put my applications in production sites but due to many technical difficulties I had to withdraw them and reinstalled Clipper compilations. I agree that those were the days when Xbase++ was evolving. I could have concentrated on Xbase++ IF I could not came face-to-face with xHarbour... "
Pritpal Bedi, 24/2/09

3. Steven,

I will have to say how very disappointed I was with your xBase++. I cost me > $AU1300 back in about 2001 and was nothing but heartache. After 10 years as a productive Clipper programmer, feeling like I could write anything, I read the marketing blurbs and spent my hard earned cash on a *DUD*. It was version 1.3 and after trying for several months to get it to behave - I wasn’t even using the GUI - I just gave up. No chance of being able to upgrade to a later version without *MORE* money being required (aka a "subscription"). I actually threw out the Packaging / CD only last month as it was only gathering dust. (Have a look - I bought it from "Aeronaut Industries")

Luckily I found xHarbour and now I’m firmly in the that camp. It does what I need (5 times faster than Clipper) and thanks to the GTWVW crew, I hardly need to change anything. Thanks to everyone working on the project. Once again I think I can write "anything" again.

I’m not sure what all the noise is about MultiThreading but I’m happy with the performance of my ST applications on xHarbour. My opinion is that if you need MT style performance then you are better porting the DB sections of your code to SQL. Once that is done then 99% of applications are just display / GUI code. If there are any issues with performance with this end then

1. Just let Moores Law take effect (the latest processor will be twice as fast in 2 years time!)

2. Figure out why its slow and then fix it! xHarbour gives you the code so at least you have a chance.

Sorry to be negative about xBase++ but that was how it was.
Tony Glynn, 9th March 2009

CCH : To be fair, I have not really looked at it since. Anyway, to present an alternative to Harbour and xHarbour, I have republished here the relevant info...

Direct from

Developing applications in Clipper was productive but now Clipper means legacy. With Xbase++ you will get your language of choice – Clipper – with technology of Alaska Software to give developers unmatched compatibility, performance and features. In addition, Xbase++ offers Graphical User Interface programming and multi-threading in a unique easy way.
The best compatibility
Xbase++ was designed to fully support Clipper features like preprocessor, code blocks, macro-evaluation, functions and commands, and to transform them to the world of 32-bit computing. Xbase++ provides a unique three-tier architecture in language for swift and effective application development. Whether you use commands or functions, the compiler transforms your code into the objects you need. And naturally the whole process remains ”hidden” from view. This has the great advantage that all features of the Xbase++ runtime library are realized using platform independent objects.
The Xbase++ compiler identifies a bunch of more errors than Clipper and increases this way productivity and quality of your projects. It also generates fast 32-bit native code, which allows the creation of native PE executables (EXE) and dynamic-link-libraries (DLL). Because of its true 32-bit architecture, Xbase++ applications can easily be deployed as CGI programs supporting a wide range of Web-Servers.
Easy Graphical User Interface programming
Over 40 powerful XbasePARTS ensure that your GUI application will be able to handle the job at hand – both now and in the future. XbasePARTS provide the GUI controls used to develop state-of-the-art GUI applications without any need to deal with the complexities of the underlying operating system.

You can use the FormDesigner to design your dialogs visually with live-data from a database and let then the FormDesigner generate the source code for you. Besides powerful GUI applications, Xbase++ supports 32-bit console applications (text-mode) including the widely used @SAY/GET, PROMPT and BROWSE commands/functions.
In addition via its Hybrid Interface, Xbase++ allows the simultaneous use of text and graphical elements. You can instantly reuse your @SAY/GET dialogs and add XbasePARTS to them. For the very first time, you can now improve the look and feel of your applications with only minor source code changes. This also guarantees a trouble-free transition to graphical user interface programming.

Increase productivity with object-oriented programming
XbasePARTS – also GET and TBrowse – are true objects in the object-oriented programming model of Xbase++. This substantially increases the reusability of your existing work. The sophisticated OOP model of Xbase++ includes multiple inheritance, encapsulation, polymorphism, automatic synchronization between different threads, access/assign variables and allows the creation of classes at runtime to fully support the dynamics of the language.

Roll your own object-oriented client/server database
Xbase++ accesses database with DatabaseEngines (DBEs). Those included in the development package – DBF, FOX, NTX, CDX, SDF and DEL – offer an unprecedented level of flexibility. For example, Xbase++ makes it possible to create an index for a SDF file and carry out a search within the SDF file.

The FOX DatabaseEngines does support blobs and in conjunction with the persistence of all data-types of Xbase++ you can store and retrieve objects. Using DatabaseEngines, such as the ADS-DBE (Advantage Database Server), you are now capable to save customer-objects in a client/server database and this way rolling your own object-oriented client/server database.
All in one…
The Xbase++ development package includes anything you need to develop and deploy professional 32-bit database applications. Besides the 32-bit native code compiler, a source-code debugger to track down errors, a FormDesigner to visually design GUI Forms and Resource Compiler to bind bitmaps and Icons to your application are included.

The ProjectBuilder manages the compile and link cycle of your projects and automatically generates the dependencies to track your changes.
And at its best, all applications developed with Xbase++ are free of any runtime fees; shareware products can be developed and distributed as well.

Technical Data:
Compiler and Linker
  • Conditional compilation with built-in preprocessor
  • Supports OEM and ANSI source code files
  • Different warning levels at compilation to develop error free applications
  • Exhaustive error recognition at compile-time – not just at runtime
  • Automatic support for mathematical coprocessor
  • Generates 32-bit multi-threading ready native code
  • Supports OMF and COFF object-file formats
  • Creates EXE or DLL files
  • Applications are royalty-free


  • Industry-standard Xbase language
  • 100% Clipper language compatible
  • Support for all Xbase data types (Logical, Numeric, Character, Date and Array), objects and code blocks as well
  • Multi-dimensional arrays without any restrictions in size and dimension
  • Length of a character string is limited only by the operating system
  • Variable types are PRIVATE, PUBLIC, LOCAL and STATIC
  • Directly access DLLs, Window API calls
  • All data types are persistent – even objects – and can be stored to and retrieved from external storage
  • Object-oriented programming model with multiple inheritance, encapsulation and polymorphism
  • Intelligent multi-threading, all values are thread-safe
  • STATIC and PUBLIC variables are automatically synchronized between different threads
  • 50 ready to use components/classes to enhance productivity and reuse


  • CORBA 2.0 based Data-Access-Middleware
  • Support of long filenames and UNC naming conventions to access remote files
  • Dynamic load/unload of DBEs at application runtime
  • The same command/function for all DBE, no code changes neccessary to support the underlying DBMS
  • Clipper compatible DBFDBE and NTXDBE to support concurrent operations between Xbase++ and Clipper
  • Visual-FoxPro 3.0/5.0 compatible FOXDBE and CDXDBE to support concurrent operations between Xbase++ and Visual-FoxPro applications
  • SDF and DEL DatabaseEngines to support different data import and export formats
  • Support for DatabaseEngines to access Advantage Database Server or SQL DBM systems

No comments:

Post a Comment

Welcome to Clipper... Clipper... Clipper

In 1997, then using Delphi 3, I had already created 32-bits Windows applications for HRIS, ERP and CRM. In 2007, using Ruby on Rails, an AJAX powered CRM site running on Apache & MySQL was created and I am now using Visual Studio .Net 2008 to create web-based projects and Delphi 7 for Win32 applications using SQL2005 & DBFCDX.

So, why then am I reviving the Original Clipper... Clipper... Clipper via a Blog as CA-Clipper is a programming language for the DOS world ? Believe it or not, there are still some clients using my mission-critical CA-Clipper applications for DOS installed in the late 80's and up to the mid 90's. This is testimony to CA-Clipper's robustness as a language :-)

With the widespread introduction of Windows 7 64-bits as the standard O/S for new Windows based PCs & Notebooks, CA-Clipper EXE simply will not work and it has become imperative for Clipper programmers to migrate immediately to Harbour to build 32/64 bits EXEs

Since 28th January 2009, this blog has been read by 134,389 (10/3/11 - 39,277) unique visitors (of which 45,151 (10/3/11 - 13,929) are returning visitors) from 103 countries and 1,574 cities & towns in Europe (37; 764 cities), North America (3; 373 cities) , Central America & Caribeans (6; 13 cities), South America(10; 226 cities), Africa & Middle-East (12; 44 cities) , Asia-Pacific (21; 175 cities). So, obviously Clipper is Alive & Well : -)

TIA & Enjoy ! (10th October 2012, 11:05; 13th November 2015)

Original Welcome Page for Clipper... Clipper... Clipper

This is the original Welcome Page for Clipper... Clipper... Clipper, which I am republishing for historical and sentimental reasons. The only changes that I have made was to fix all the broken links. BTW, the counter from is still working :-)

Welcome to Chee Chong Hwa's Malaysian WWW web site which is dedicated to Clipperheads throughout the world.

This site started out as a teeny-weeny section of Who the heck is Chee Chong Hwa ? and has graduated into a full blown web site of more than 140 pages (actually hundreds of A4 size pages) ! This is due to its growing popularity and tremendous encouragements from visiting Clipperheads from 100 countries worldwide, from North America, Central America, Caribbean, South America, Europe, Middle-East, Africa and Asia-Pacific. Thanx Clipperheads, you all made this happen !

What is Clipper ?

You may ask, what is this Clipper stuff ? Could Clipper be something to do with sailing as it is the name of a very fast sailing American ship in the 19th century ?

Well, Clipper or to be precise, CA-Clipper is the premier PC-Software development tool for DOS. It was first developed by Nantucket Corporation initially as a compiler for dBase3+ programs. Since then, CA-Clipper has evolved away from its x-base roots with the introduction of lexical scoping & pre-defined objects like TBrowse. As at today, the most stable version ofClipper is 5.2e while the latest version, 5.3a was introduced on 21 May 1996.

As at 11th November, 1996, an unofficial 5.3a fixes file was made available by Jo French. See the About CA-Clipper 5.3a section for more details. BTW, Jo French uploaded the revised 5.3a fixes file on 20th November, 1996.

Latest News

The latest news is that CA has finally released the long-awaited 5.3b patch on 21 May, 1997.

For 5.3b users, you must a take a look at Jo French's comments on unfixed bugs in 5.3b.

BTW, have you used Click ? If you're a serious Clipperprogrammer and need an excellent code formatter, Click is a natural choice. How to get it ? Simple, access Phil Barnett's site via my Cool Clipper Sites.

32-bits Clipper for Windows ?

Have you tried Xbase ++ ? Well, I have and compared to Delphi (my current Windows programming tool of choice), I'm still sticking to Delphi.

Anyway, you should visit the Alaska Home Page. Give it a chance and then draw your own conclusions !.

The Harbour Project

Is this the future of Xbase ? Take a look at at the Harbour Project

You are Visitor # ...

According to, you are visitor since 3 June 1996.

If you like or dislike what you see on this website, please drop me a line by clicking the email button at the bottom of this page or better still, by filling out the form in my guest book. If you are not sure what to write,click here to take a look at what other Clipperheads have to say.