Run-Time Error Messages

The following messages indicate general problems that may occur during program startup, termination, or execution. These error messages have the following format:

run-time error R6xxx

- messagetext

Number Run-Time Error Message

R6000stack overflow  
  The program ran out of stack space. This can occur when a program uses a large amount of local data or is heavily recursive.
  The use of p-code can cause a program to require more stack space than it would with native code.
  There are several ways to allocate a larger stack:

Recompile using the /F compiler option.

Relink using LINK's /STACK option.

Run EXEHDR on the program using the /STACK option.

R6001null pointer assignment  
  The contents of the NULL segment changed during the course of program execution. The program wrote to this area, possibly due to an inadvertent assignment through a null pointer.
  The NULL segment is a location in low memory that is not normally used. The contents of the NULL segment are checked upon program termination. If a change is detected, this error is generated.
  This error appears only when the program writes to memory through a null pointer; the run-time library does not check reads from null pointers.
  Although a program that produces this run-time error may appear to operate correctly, references to null pointers may cause problems when executed under a different operating environment.
R6002floating-point support not loaded  
  The program needs the floating-point library, but the library was not linked to the program.
  One of the following may have occurred:

The program was compiled or linked with an option (such as /FPi87) that required a coprocessor, but the program was run on a machine that did not have a coprocessor installed.

A format string for a printf or scanf function contained a floating-point format specification, and the program did not contain any floating-point values or variables.

The compiler minimizes a program's size by loading floating-point support only when necessary. The compiler cannot detect floating-point format speci-fications in format strings, so it does not load the necessary floating-point routines.

Use a floating-point argument to correspond to the floating-point format speci-fication, or perform a floating-point assignment elsewhere in the program. This causes floating-point support to be loaded.

In a mixed-language program, a C library was specified before a FORTRAN library when the program was linked. Relink and specify the C library last.

R6003integer divide by 0  
  An attempt was made to divide an integer by zero, which produces an undefined result.
R6005not enough memory on exec  
  Not enough memory was available to load the process being spawned.
  This error occurs when a child process that was spawned by one of the exec library routines fails and the operating system cannot return control to the parent process.
R6006invalid format on exec  
  The file to be executed by one of the exec functions was not in the correct format for an executable file.
  This error occurs when a child process that was spawned by one of the exec library routines fails and the operating system cannot return control to the parent process.
R6007invalid environment on exec  
  During a call to an exec function, the operating system found that the child process was given an invalid environment block.
  This error occurs when a child process that was spawned by one of the exec library routines fails and the operating system cannot return control to the parent process.
R6008not enough space for arguments  
  There was enough memory to load the program but not enough memory to create the argv array.
  One of the following may be a solution:

Increase the amount of memory available to the program.

Reduce the number and size of command-line arguments.

Reduce the environment size by removing unnecessary variables.

R6009not enough space for environment  
  There was enough memory to load the program but not enough memory to create the envp array.
  One of the following may be a solution:

Increase the amount of memory available to the program.

Reduce the number and size of command-line arguments.

Reduce the environment size by removing unnecessary variables.

  If your program uses the compact, large, or huge memory model, this error may be avoided by using LINK's /CPARM:1 command-line option. This option causes unused near heap space to be allocated to the far heap.
R6010abnormal program termination  
  The abort function was called.
  This error is generated by the abort function. The program terminates with exit code 3, unless an abort signal handler has been defined by using the signal function.
R6012illegal near-pointer use  
  A null near pointer was used in the program.
  This error only occurs if pointer checking is in effect. You can enable pointer checking with either the /Zr compiler option or the check_pointer pragma.
R6013illegal far-pointer use  
  An out-of-range far pointer was used in the program.
  This error only occurs if pointer checking is in effect. You can enable pointer checking with either the /Zr compiler option or the check_pointer pragma.
R6016not enough space for thread data  
  The program did not receive enough memory from the operating system to complete a _beginthread call.
  When a new thread is started, the library must create an internal database for the thread. If the database cannot be expanded with memory provided by the operating system, the thread will not begin and the calling process will stop.
R6017unexpected multithread lock error  
  The process received an unexpected error while trying to access a C run-time multithread lock on a system resource.
  This error usually occurs if the process inadvertently alters the run-time heap data. However, it can also be caused by an internal error in the run-time or operating-system code.
R6018unexpected heap error  
  The program encountered an unexpected error while performing a memory-management operation.
  This error usually occurs if the program inadvertently alters the run-time heap data. However, it can also be caused by an internal error in the run-time or operating-system code.
  If your compiler provides a library containing _heapchk and _heapwalk, you can use these functions to diagnose this error.
R6019unable to open console device  
  The program called a console function declared in CONIO.H, but the operating system did not grant access to the console.
R6020unexpected QuickWin error  
  The program encountered an unexpected QuickWin error.
  One of the following may have occurred:

The program tried to access QuickWin, but the program was built without QuickWin libraries.

A QuickWin operation had an unrecoverable error.

R6021no main procedure  
  The program does not have a procedure called main.
  Make sure that all object and library modules have been linked into the executable.
R6800internal error  
  Note the circumstances of the error and notify Microsoft Corporation by following the instructions in the Microsoft Product Assistance Request form at the back of one of your manuals.
R6801overlay manager stack overflow  
  The program exceeded the limit on recursive overlay calls.
  Overlay calls can be nested up to 64 levels.
R6802requires DOS 3.0 or higher  
  A program that uses the MOVE overlay manager can run only under DOS version 3.0 or higher.
R6803DOS memory error  
  MOVE was unable to allocate memory from DOS.
  Probably the available memory was corrupted.
R6804not enough conventional memory  
  There was insufficient conventional memory (the lower 640K of memory) to load the program. The required memory equals the size of the root plus the largest overlay plus MOVE's overhead.
R6805cannot open file  
  MOVE could not find the program's executable file, which it needs when loading a new overlay.
R6806cannot read file  
  An error occurred while MOVE was reading the program's executable file to load a new overlay.
R6807invalid executable file  
  The program's executable file was not in the format recognized by the operating system.
R6808error accessing expanded memory  
  MOVE encountered an error while writing to or reading from expanded memory. The error could be a MOVE problem or a problem with the expanded memory manager (EMM).
R6809error accessing extended memory  
  MOVE encountered an error while writing to or reading from extended memory. The error could be a MOVE problem or a problem with the extended memory manager.
R6810overlay manager was reentered  
  The program reentered the overlay manager, which is not reentrant.
  Possibly a signal handler was called in an overlay or the handler called a routine that was in an overlay.
R6900internal error  
  Note the circumstances of the error and notify Microsoft Corporation by following the instructions in the Microsoft Product Assistance Request form at the back of one of your manuals.
R6901This is a protected-mode application and requires a DPMI host.  
  DPMI (DOS Protected Mode Interface) is a standard that provides services required by protected-mode programs. Examples of DPMI hosts include:

A DOS session under Windows (80386 enhanced mode)

MSDPMI.EXE, provided in Microsoft C/C++ version 7.0

R6902DPMI host not 32-bit  
  The installed DPMI host is a 16-bit server.
R6903DPMI host does not have 32-bit interrupts  
  The installed DPMI host does not support 32-bit interrupt services. The DOS Extender requires 32-bit interrupt services, which are an extension to the DPMI specification.
  Servers that provide these services include:

A DOS session under Windows

MSDPMI.EXE, provided in Microsoft C/C++ version 7.0

R6904requires DOS 3.0 or higher  
  The program uses the 32-bit DOS Extender and must be run under DOS version 3.0 or higher.
R6905requires 80386 or higher  
  The program uses the 32-bit DOS Extender and must be run on a machine that has an 80386 processor or higher version.
R6906not enough conventional memory on exec  
  There was insufficient conventional memory (the lower 640K of memory) to load the program.
  Remove TSR (terminate-and-stay-resident) programs. Under MS-DOS version 5.0, you can load TSRs using either a LOADHIGH command in AUTOEXEC.BAT or a DEVICEHIGH command in CONFIG.SYS.
R6907not enough extended memory on exec [: server]  
  There was insufficient expanded or extended memory to load the program.
  Use the DOS CHKDSK command to see the current amount of extended or expanded memory.
  The error message may be followed by the type of server that is providing the memory, which can be one of the following:

If the server is VCPI (for example, Microsoft's EMM386.EXE), it is not configured to provide enough expanded memory.

If the server is DPMI (for example, a DOS session under Windows, or MSDPMI.EXE), there is not enough extended or expanded memory.

If the server is XMS (for example, Microsoft's HIMEM.SYS), it is not configured to provide enough extended memory.

R6908cannot find file : filename  
  The DOS Extender couldn't find the given file.
  If the given filename is MS32KRNL.DLL or MS32EM87.DLL, set the SYSTEM environment variable to the directory that contains this file.
R6909cannot read file : filename  
  The DOS Extender couldn't open the given file.
  Probably the file is locked by another process.
R6910invalid executable file [: filename]  
  The file to be executed was not in the correct format for an executable file. The filename may be displayed following the error message.
  Possibly the file was corrupted or overwritten.
R6911invalid environment on exec  
  The DOS Extender found a problem in the DOS environment.
  One of the following may have occurred:

An invalid environment block was passed to a spawned DOS-extended program.

The DOS environment was corrupted.

R6912out of selectors  
  The program requested more segments than the existing number of selectors.
R6913incompatible file version : filename  
  The version of the given file does not match the versions of related files. All product files must be updated simultaneously. The required files may include the following:

CL.EXE

MS32EM87.DLL

MS32KRNL.DLL

VMCPD.386

VPFD.386

R6914cannot initialize device : filename  
  The DOS Extender could not find or initialize the given device driver.
  The initialization file must contain commands to load the device driver. For Windows, this file is SYSTEM.INI; for MSDPMI, the file is MSDPMI.INI. The commands must be in a section marked with the label [386Enh]. The required commands are as follows:

For MSDPMI and for Windows 3.0, use:

device=[path\]vmcpd.386

device=[path\]vpfd.386

If the command device=*vmcpd appears, either delete it or change it to a comment by preceding it with a semicolon (;).For later versions of Windows, use:

device=*vmcpd

device=[path\]vpfd.386

R6915unhandled exception [: number]  
  The DOS-extended program caused a protected-mode fault. Probably an invalid memory access operation occurred. The message may be followed by a number that represents an exception code defined by the operating system.
  If the program is a Microsoft product, note the circumstances of the error and notify Microsoft Corporation by following the instructions in the Microsoft Product Assistance Request form at the back of one of your manuals.
R6916requires 80286 or higher  
  The program uses the 16-bit DOS Extender and must be run on a machine that has an 80286 processor or higher version.
R6917CPU already in protected or virtual mode  
  The DOS Extender cannot enter protected mode because an operating system was already running and had entered protected mode.
R6918DPMI, VCPI, or XMS host required  
  The program is DOS-extended and requires extended or expanded memory, which must be provided by one of the following:

A DPMI server, such as MSDPMI.EXE or the server provided in a DOS session under Windows enhanced mode. This server provides extended or expanded memory.

A VCPI server, such as Microsoft's EMM386.EXE. This server provides expanded memory.

An XMS server, such as Microsoft's HIMEM.SYS. This server provides extended memory.

R6919unexpected initialization error  
  An unknown error occurred that prevented loading the program.
  Note the circumstances of the error and notify Microsoft Corporation by following the instructions in the Microsoft Product Assistance Request form at the back of one of your manuals.
R6920invalid XMS host  
  The XMS server cannot provide any extended memory. This error occurs in the following environments:

Windows 3.0 standard mode

MS-DOS Shell in MS-DOS version 5.0

R6921no expanded memory under VCPI host  
  The VCPI driver was loaded but no expanded memory was allocated.
  Possibly the CONFIG.SYS file contained a line such as:

DEVICE=C:DOSEMM386.EXE NOEMS

  In this case, replace NOEMS with another argument. Specify a decimal number in kilobytes. You can specify RAM (or leave the argument blank) to allocate 256K (the default). If error R6907 subsequently occurs, increase the specified value.
  It is recommended that you run this program under a DPMI host such as MSDPMI.EXE or the DOS box in Windows enhanced mode.