#IF ... #ENDIF Returns Different Results in FPD and FPWLast reviewed: June 27, 1995Article ID: Q108668 |
The information in this article applies to:
SYMPTOMSIn FoxPro for MS-DOS, if a system memory variable such as _STARTUP is stored with a value prior to compilation, _STARTUP can be evaluated with the #IF ... #ENDIF statements at compile time. In FoxPro for Windows, the #IF ... #ENDIF statements will not evaluate the system memory variable _STARTUP at compile time even though the system memory variable _STARTUP contains a value prior to compilation.
RESOLUTIONTo obtain the same results in FoxPro for Windows, add a #DEFINE preprocessor directive when you are assigning a value to the system memory variable _STARTUP. For an example, see "Workaround" in the "More Information" section below.
MORE INFORMATIONThis behavior is documented in the Help files for FoxPro for MS-DOS and FoxPro for Windows. For more information, see the "#IF ... #ENDIF Preprocessor Directive" online Help topic.
Steps to Reproduce BehaviorLoad FoxPro for MS-DOS, and then follow the steps below:
WorkaroundTo obtain the same results ("TEST mode") in FoxPro for Windows, add a #DEFINE preprocessor directive when you are assigning a value to the system memory variable _STARTUP in the TEST.PRG program. For example:
#DEFINE _STARTUP "TEST by <your name>" #IF "TEST" $ _startup ? "TEST mode" #ELSE ? "PRODUCTION mode" #ENDIFIf you recompile and run the TEST.PRG file, it should now return "TEST mode" in FoxPro for Windows.
|
Additional reference words: FoxDos FoxWin 2.50 2.50a 2.50b compiler run
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |