Microsoft KB Archive/108178
Contents of 2.5b DKREADME.TXT in Main FoxPro Directory
The information in this article applies to:
Below is the complete FoxPro for MS-DOS DKREADME.TXT file found in the main FoxPro directory (usually FOXPRO25).
Release Notes for Microsoft(R) FoxPro(R) for MS-DOS(R) Distribution Kit Version 2.5b (C)1993 Microsoft Corporation. All Rights Reserved.
This Distribution Kit corresponds to the FoxPro 2.5b product version. You can confirm that this product and your FoxPro development product match by typing ? vers() in the command window of your FoxPro product. If "FoxPro 2.5b" is returned, then everything matches and you can start development. If something else is returned, then contact Microsoft Technical Support to determine what you may need to update. **************************************************************************
Part Description ---- -----------
1 Knowledge Base Articles 2 Changes to Documentation Since Printing 3 Answers to Commonly Asked Questions 4 Error Messages
Part 1: Knowledge Base Articles
If you installed the Knowledge Base articles, you can view them by choosing "Run Application" and then choose KBVIEW.APP. These articles contain useful information about a variety of FoxPro topics.
Part 2: Changes to Documentation Since Printing
The documentation refers to FoxPro 2.5. Substitute FoxPro 2.5b wherever FoxPro 2.5 appears.
Chapter 1, page 2: The first bulleted item should read:
"The Distribution Kit files, in both 5.25-inch and 3.5-inch disk formats."
Chapter 2, page 10, under "Available Runtime Menus and Menu Options," the File menu item should read:
Chapter 2, page 11, under "Features Not Available in Distributed Applications," add the following section below the "Menus" section:
The following FoxPro menu pads aren't available in the applications you distribute.
SYSTEM Menu: Macros..., Filer
FILE Menu: New..., Open..., Printer setup..., Print..., Quit
WINDOW Menu: Color..., Command, Debug, Trace, View The file names for files with extension .ESL or .ESO now include a 'D' to indicate an MS-DOS file and '25' and 'B' to indicate a Version 2.5b file. For example:
FOXPRO.ESL is now FOXD250B.ESL FOXPRO.ESO is now FOXD250B.ESO FOXPROX.ESL is now FOXDX25B.ESL
The new file names impact the following pages in the Distribution Kit User's Guide: Chapter 1, page 5, the Distribution Kit Files table.
Chapter 3, page 22, change the last sentence to read:
"The .EXE Support Library consists of three files: FOXD250A.ESL, the standard .EXE Support Library FOXD250A.ESO, and the 32-bit Extended .EXE Support Library FOXDX25A.ESL."
Chapter 5, page 32, the table called Files Required on Distribution Disks Based on Type of Application has these changes: In the "You must also distribute these files" column, substitute the .ESL and .ESO file names with the new File names.
Chapter 2, page 15, under the heading "Help in a Project" add the following information:
"If your help files are included in your project but marked as excluded, you must distribute the .DBF and .FPT files with your application. These files can be changed by the user. If you don't want your users to have the ability to change the contents of your help files, include them in your project, but don't mark them as excluded."
Chapter 5, page 33, the Files Your Application May Require table should include DRIVER2.PLB as a file your application may require. This file contains printer drivers. You must distribute this file if your application requires printer drivers.
Part 3: Answers to Commonly Asked Questions
Our organization includes several FoxPro developers. Does each developer need an individual copy of the Distribution Kit?
Your organization must own one licensed copy of the Distribution Kit per developer, for each developer creating applications for distribution. If five developers in your organization create applications for distribution, you must own five licensed copies of the Distribution Kit.
What type of applications (single or multiuser) can be built with the Distribution Kit?
You can build all types of applications (single and multiuser) with the Distribution Kit. While FoxPro version 2.0 required separate license agreements for single user, multiuser, and so on, FoxPro version 2.5b no longer makes these distinctions. However, as mentioned in Answer 1, in order to be legal, you must own one licensed copy of the FoxPro 2.5b MS-DOS Distribution Kit for each developer creating FoxPro 2.5b for MS-DOS applications for distribution.
I have a question regarding the legal requirements for reselling applications developed with FoxPro. Let's say that, as a FoxPro developer, I write a program for Client A. I compile the program as a compact .EXE file and give the application to Client A, together with the *.ES? Library files with which to run the application. Client A owns the application and the copyright. Client A then sells the application commercially to many other people.
Does Client A also have to purchase the Distribution Kit, even though Client A will never use the Distribution Kit themselves?
No, Client A does not need to purchase the Distribution Kit. Only the developer who uses the Distribution Kit to build the original .EXE file must own a licensed copy of the Distribution Kit.
Does Client A have to purchase the FoxPro 2.5b development system?
Client A does not have to purchase FoxPro 2.5b because the client is not building their own .EXE; Client A is just reseller. Client A must distribute the application in its original form, however, and cannot remove the runtime files to include the application with another application.
Does the above also apply to stand-alone .EXE files?
Why is Build Executable dimmed after I install the Distribution Kit?
Two possible reasons: First, is the Distribution Kit must be installed in your FoxPro directory. Ensure that the FoxPro files are not marked as read- only before installing the Distribution Kit. Second, the project does not include a SET MAIN program. Select the main menu or program, then choose Main from the Project menu.
When I compile an .EXE file, the process stops with a "Cannot Open File" error message that refers to a Distribution Kit program file. When I grant all access rights (except for delete) to the program directory, the program compiles. However, the compilation process leaves several files in the program directory with names like WLK02112.--A, WLK02112.--B, WLK02112.--C, and so on. What are these files?
Compiling program files in the FoxPro Distribution Kit places temporary files in the directory from which you start FoxPro. The TMPFILES statement in the CONFIG.FP file does not affect file placement.
Include the full path to the network drive and directory where the FoxPro development and distribution programs are installed. Start FoxPro from a user directory that has all rights, including erase or delete rights, assigned to it. The process of compiling using the Distribution Kit creates files in and deletes files from the user directory. The system administrator can designate the program directory read only.
I have created an application that does not allow me to edit my table/.DBF files. How can I correct this problem?
Mark your table/.DBF as excluded in the project, then rebuild your application. You must distribute these files to your end users. Including the table/.DBF in the project automatically makes these files read only. Question 2
When I launch my .EXE using a loader, in what order will the loader search for the .ESL Support Library files?
The loaders look for the ESL files starting in the .EXE's directory, then in the current working directory and finally, down the operating system's path.
How do you instruct an MS-DOS .FXP, .APP or compact .EXE file to run in extended mode from within Windows?
An .FXP, .APP or .EXE file will run in standard mode when run from within Windows, even though there is enough memory for the extended mode Support Library to run. To force use of the Extended Support Library from within Windows, you can use the +X loader switch to launch your application.
Part 4: Error Messages
Message: "Feature Not Available"
My executable file runs correctly in the development version of FoxPro, but I receive the error message "Feature Not Available" when running the stand- alone application. How can I correct this problem?
You will get the "Feature not available" error message when you use commands, features, and menus that require the developmental version of FoxPro. Three specific instances are listed below. You can also refer to the "Features Not Available in Distributed Applications" list in the FoxPro Distribution Kit User's Guide.
Answer 1.2 You will get the "Feature not available" error message when using commands containing macro substitution in a stand-alone .EXE file. When you compile a stand-alone .EXE file, the compiler includes only the code necessary to run the commands explicitly included in the application. If there is macro substitution anywhere in a line of code, that entire line is skipped, since FoxPro does not explicitly "see" the command referenced by the macro- substituted variable. The result is that the code to execute the substituted command is not built into the .EXE file.
The following examples illustrate two methods for ensuring that macro- substituted commands are included in your compiled .EXE file:
As a developer you might want to allow the user to choose either reports or labels by storing the choice "report" or "label" in a memory variable called m.output. You could then store the file name in the memory variable m.filename. You would include the following command to run the report or labels in your application:
&output FORM &filename TO PRINT NOCONSOLE
The Distribution Kit compiler will successfully create a stand-alone .EXE file with this code. However, when FoxPro attempts to execute the command, you will get a "Feature Not Available" runtime error because the code for the REPORT FORM and the LABEL FORM commands is not included in the .EXE file. To avoid this problem, include the following If statement at the beginning of your application:
IF .F. REPORT FORM dummy LABEL FORM dummy ENDIF
The file names do not have to exist. The IF .F. guarantees the code will never be executed. You are simply making these commands visible to the compiler. Example 2
This code example illustrates the use of macro substitution for the PACK command. Because the code does not explicitly issue the PACK command, FoxPro does not include the required code in the stand-alone .EXE file. An attempt to run the PACK command from the macro substitution fails.
To address this situation, create another procedure, such as the following, and include it in the project.
procedure addon pack return
Message: "Dynamic memory exhausted"
What is the cause and solution for a "Dynamic memory exhausted" error message when compiling a stand-alone .EXE file?
This error message is sent by the WATCOM linker, which is one of the tools in the FoxPro Distribution Kit used to create a stand-alone application. The message is displayed when the amount of available conventional memory is too low. The WATCOM linker (WLINK8.EXE) uses only conventional memory.
If the CONFIG.FP file contains the DOSMEM=ON statement, edit the file to remove the statement. If the CONFIG.FP file does not contain a DOSMEM statement, edit the AUTOEXEC.BAT and CONFIG.SYS files to remove unnecessary device drivers and memory-resident applications to maximize available conventional memory.
Message: "Link command failed"
When I attempt to build an executable file, I receive the error message "Link command failed." How can I correct this problem?
If you receive this error message, check the following items:
a. Make sure that enough conventional memory is available. Modify the
CONFIG.SYS and AUTOEXEC.BAT files to free conventional memory.
b. Make sure that enough disk space is available. c. Increase the number of file handles available to Microsoft FoxPro for MS-
DOS. To do this, you can modify the FILES statement in the CONFIG.SYS file to increase the number of available files. In the Novell NetWare environment, modify the FILE HANDLES statement in the SHELL.CFG file to increase the number of available files.
d. If the AUTOEXEC.BAT file loads the SHARE utility, increase the values
specified by the /F and /L parameters. For example: SHARE /F:5120 /L:500
e. Make sure that FoxPro can find your COMMAND.COM file. Modify the SHELL
statement in the CONFIG.SYS file to specify the /P (permanent) option switch. Be sure SHELL= or COMSPEC= is set for the proper path to COMMAND.COM.
f. Make sure that the following files are in a directory listed in the
MS-DOS PATH environment variable in the AUTOEXEC.BAT file: WLINK8.EXE and FOXSWAP.COM
g. If you are running the Extended Version of FoxPro, remove the DOSMEM=ON
statement (if it is present) from the CONFIG.FP file. ******************* END OF DKREADME.TXT *******************
Additional reference words: FoxDos 2.50b dk novel KBCategory: kbreadme KBSubcategory:
Last Reviewed: December 12, 1996