Microsoft KB Archive/108178

From BetaArchive Wiki

Contents of 2.5b DKREADME.TXT in Main FoxPro Directory

ID: Q108178

The information in this article applies to:

  • Microsoft FoxPro for MS-DOS, version 2.5b


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:

File menu: Close, Save, Save As and Revert

Chapter 2, page 11, under "Features Not Available in Distributed Applications," add the following section below the "Menus" section:

Menu Pads

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:


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

  • License Agreement*

Question 1

Our organization includes several FoxPro developers. Does each developer need an individual copy of the Distribution Kit?

Answer 1

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.

Question 2

What type of applications (single or multiuser) can be built with the Distribution Kit?

Answer 2

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.

Question 3

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.

Question 3.1

Does Client A also have to purchase the Distribution Kit, even though Client A will never use the Distribution Kit themselves?

Answer 3.1

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.

Question 3.2

Does Client A have to purchase the FoxPro 2.5b development system?

Answer 3.2

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.

Question 3.3

Does the above also apply to stand-alone .EXE files?

Answer 3.3


  • Installation*

Question 1

Why is Build Executable dimmed after I install the Distribution Kit?

Answer 1

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.

  • Building a Stand-Alone .EXE*

Question 1

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?

Answer 1

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.

  • Runtime Issues*

Question 1

I have created an application that does not allow me to edit my table/.DBF files. How can I correct this problem?

Answer 1

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?

Answer 2

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.

Question 3

How do you instruct an MS-DOS .FXP, .APP or compact .EXE file to run in extended mode from within Windows?

Answer 3

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"

Question 1

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?

Answer 1.1

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.

  • When using commands that require the execution and compilation of source code. These commands require the development version of FoxPro and therefore are not available in a distributed .APP or .EXE file. Examples of these types of commands are BUILD APP, BUILD EXE, BUILD PROJECT, COMPILE, FILER, CREATE/MODIFY MENU, CREATE/MODIFY QUERY, CREATE/MODIFY SCREEN, SET VIEW ON, and SUSPEND.
  • When using features specific to the interactive development environment of FoxPro, such as the Trace, Debug, Command, and View windows.
  • When using FoxPro menu options available only in the development version. For the reasons mentioned above, many of the original FoxPro menu options are not available for distribution. In addition, since there is no Command window in applications compiled using the Distribution Kit, any menu option whose command is echoed to the Command window is not available. The list of menu items that ARE available in a distributed .FXP, .APP, OR .EXE files can be found in the section "Available Runtime Menus and Menu Options" in Chapter 2 of 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:

Example 1

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

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

Message: "Dynamic memory exhausted"

Question 1

What is the cause and solution for a "Dynamic memory exhausted" error message when compiling a stand-alone .EXE file?

Answer 1

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"

Question 1

When I attempt to build an executable file, I receive the error message "Link command failed." How can I correct this problem?

Answer 1

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

f. Make sure that the following files are in a directory listed in the

   MS-DOS PATH environment variable in the AUTOEXEC.BAT file:


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
© 1999 Microsoft Corporation. All rights reserved. Terms of Use.