DOCUMENT:Q121267  09-NOV-1994  [FOXPRO]
TITLE   :INF:  DKREADME.TXT Questions & Answers FoxPro 2.6a for MS-DOS
PRODUCT :Microsoft FoxPro
PROD/VER:2.60a
OPER/SYS:MS-DOS
KEYWORDS:kbreadme kbref

---------------------------------------------------------------------
The information in this article applies to:

 - Microsoft FoxPro for MS-DOS, version 2.6a
---------------------------------------------------------------------

SUMMARY
=======

This article is based on the information in the FoxPro version 2.60a for MS-
DOS DKREADME.TXT file, found in the main FoxPro directory (usually FPD26)
and on Disk 1 of the Distribution Kit.

MORE INFORMATION
================

                       DKREADME.TXT
**********************************************************
 Microsoft(R) FoxPro(R) Version 2.6a Professional Edition

               Distribution Kit for MS-DOS(R)

   (C)1994 Microsoft Corporation. All Rights Reserved.
**********************************************************

========
CONTENTS
========

1. Installation
2. Microsoft Knowledge Base Articles
3. Changes to Distribution Kit User's Guide Since Printing
4. Answers to Commonly Asked Questions
5. Error Messages

====================
Part 1: Installation
====================

Installing the Professional Edition of FoxPro 2.6
-------------------------------------------------

The Professional Edition of FoxPro 2.6 includes these kits:

   Distribution Kit
   Connectivity Kit
   Library Construction Kit
   WorkGroup Extensions (FoxPro for Windows only)

To install the Professional Edition of FoxPro, first install the main
FoxPro product. Then follow the installation instructions included with
each individual kit. The order in which the kits are installed does not
matter.

Important Note
--------------

Once you have installed the main FoxPro product, don't rename the FoxPro
executable file if you will be distributing FoxPro applications. The setup
program for the Distribution Kit requires the FoxPro executable file to be
named the default, FOXPRO.EXE. If you have renamed the executable file,
change it back to FOXPRO.EXE before running the Distribution Kit setup
program.

FoxPro version 2.6 now includes the FoxPro Wizards, located in the WIZARDS
subdirectory. The FoxPro Wizards and CATALOG.APP should not be distributed
with your applications.

=========================================
Part 2: Microsoft Knowledge Base Articles
=========================================

If you installed the Microsoft Knowledge Base articles, you can view them
by running the application KBVIEW.APP. These articles contain useful
information about a variety of FoxPro topics.

===============================================================
Part 3: Changes to Distribution Kit User's Guide Since Printing
===============================================================

In the Distribution Kit User's Guide, references to FoxPro version 2.5
should be read as references to FoxPro version 2.6.

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 files with extensions .ESL or .ESO have been renamed for the new
version. For example:

   FOXPRO.ESL is now FOXD2600.ESL
   FOXPRO.ESO is now FOXD2600.ESO
   FOXPROX.ESL is now FOXDX260.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: FOXD2600.ESL, the
      standard .EXE Support Library FOXD2600.ESO, and the 32-bit Extended
      .EXE Support Library FOXDX260.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 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 4: Answers to Commonly Asked Questions
===========================================

Question 1
----------

What type of applications (single-user, multi-user) can be built with the
Distribution Kit?

Answer 1
--------

You can build single-user or multi-user applications with the Distribution
Kit.

Question 3
----------

Suppose I write a program for Client A and 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 to many
other people.

Question 3.1
------------

Does Client A also have to purchase the Distribution Kit?

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 version 2.6 development system?

Answer 3.2
----------

Client A does not have to purchase FoxPro version 2.6 because the client is
not building their own .EXE; Client A is just a 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
----------

Yes.

Question 4
----------

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

Answer 4
--------

Two possible reasons: First, 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.

Question 5
----------

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 5
--------

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.

Question 6
----------

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

Answer 6
--------

Mark your table .DBF file as excluded in the project, then rebuild your
application. You must distribute these files to your end users. Including
the table .DBF file in the project automatically makes these files read
only.

Question 7
----------

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

Answer 7
--------

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 5: 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 development version of
FoxPro. Refer to the "Features Not Available in Distributed Applications"
list in the FoxPro Distribution Kit User's Guide for a list of these
commands and functions. These commands and functions include: BUILD APP,
BUILD EXE, BUILD PROJECT, COMPILE, FILER, CREATE/MODIFY MENU, CREATE/MODIFY
QUERY, CREATE/MODIFY SCREEN, SET VIEW ON, and SUSPEND and features specific
to the interactive development environment such as the Trace, Debug,
Command, and View windows.

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
   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.

   testcom="pack"
   &testcom

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"
===================================

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, 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 correct 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.60a contents subdirectory tips
KBCategory: kbreadme kbref
KBSubcategory:

=============================================================================

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS
PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.  MICROSOFT DISCLAIMS
ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  IN NO
EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR
ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL,
CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF
MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.  SOME STATES DO NOT ALLOW THE EXCLUSION
OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES
SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1994.