The following example demonstrates how you would create code that runs on different versions of dBASE, using the built-in identifiers __dbasewin__, __vdb__ and __version__:

#ifdef __dbasewin__

&& dBASE/Win or Visual dBASE 5.x 

#define version str(__dbasewin__,4,2) 

#else

#if __vdb__ < 2000 

// Visual dBASE 7.x 

#define version __vdb__ 

#else 

// dBASE versions after Visual dBASE 7.5 

#define version __vdb__+" release "+__version__ 

#endif 

#endif

? "Version: " + version

Because code that is excluded by #if is never compiled, you can safely use new syntax that might be introduced in a new version. When compiled with an older version of dBASE, the new code is ignored. This is different than testing the version returned by the VERSION( ) function at run time. New syntax would not compile under an older version.

Note that for the pre-version 7 code, the older comment style is used.