Appendix A Resource Compiler Diagnostic Messages

This appendix contains descriptions of diagnostic messages produced by Microsoft Windows Resource Compiler (RC). Many of these messages appear when RC is not able to compile resources properly. The descriptions in this appendix clarify the causes. The messages are listed in alphabetic order.

A capital V in parentheses (V) at the beginning of a message description indicates that the message is displayed only if RC is run with the –V (verbose) option. These messages are generally informational and do not necessarily indicate errors.

For information on the keywords and fields specified in this appendix, see the
Microsoft Windows Programmer's Reference
, Volume 4.

A  
Accelerator Type required (ASCII or VIRTKEY)  
  The type parameter in the ACCELERATORS statement must contain either the ASCII or VIRTKEY value.
B  
BEGIN expected in Accelerator Table  
  An ACCELERATORS statement was not followed by the BEGIN keyword.
BEGIN expected in Dialog  
  A DIALOG statement was not followed by the BEGIN keyword.
BEGIN expected in menu  
  A MENU statement was not followed by the BEGIN keyword.
BEGIN expected in RCData  
  An RCDATA statement was not followed by the BEGIN keyword.
BEGIN expected in String Table  
  A STRINGTABLE statement was not followed by the BEGIN keyword.
BEGIN expected in VERSIONINFO resource  
  A VERSIONINFO statement was not followed by the BEGIN keyword.
Bitmap file resource-file is not in version-number format.  
  Use Microsoft Image Editor (IMAGEDIT.EXE) to convert version 2.x resource files to the version 3.1 format.
C  
Cannot Re-use String Constants  
  You are using the same value twice in a STRINGTABLE statement. Make sure that you have not mixed overlapping decimal and hexadecimal values.
Control Character out of range [A – Z]  
  A control character in the ACCELERATORS statement is invalid. The character following the caret (^) must be in the range A through Z.
Copying segment id (size bytes)  
  (V) Microsoft Windows Resource Compiler (RC) is copying the specified segment to the executable (.EXE) file.
Could not find RCPP.EXE  
  The preprocessor (RCPP.EXE) must be in the current directory or in a directory specified in the PATH environment variable.
Could not open in-file-name  
  Microsoft Windows Resource Compiler (RC) could not open the specified file. Make sure that the file exists and that you typed the filename correctly.
Couldn't open resource-name  
  Microsoft Windows Resource Compiler (RC) could not open the specified file. Make sure that the file exists and that you typed the filename correctly.
Creating resource-name  
  (V) Microsoft Windows Resource Compiler (RC) is creating a new binary resource (.RES) file.
E  
Empty menus not allowed  
  An END keyword appears before any menu items are defined in the MENU statement. Empty menus are not permitted by Microsoft Windows Resource Compiler (RC). Make sure that you do not have any opening quotation marks within the MENU statement.
END expected in Dialog  
  The END keyword must appear at the end of a DIALOG statement. Make sure that there are no opening quotation marks left from the preceding statement.
END expected in menu  
  The END keyword must appear at the end of a MENU statement. Make sure that there are no mismatched BEGIN and END statements.
Error Creating resource-name  
  Microsoft Windows Resource Compiler (RC) could not create the binary resource specified (.RES) file. Make sure that it is not being created on a read-only drive. Use the /V option to find out whether the file is being created.
Errors occurred when linking file.  
  The linker failed. For more information, see the documentation for your linker.
EXE file too large; relink with higher /ALIGN value  
  The executable (.EXE) file is too large. Relink the .EXE file with a larger value. For more information, see the documentation for your linker.
Expected Comma in Accelerator Table  
  Microsoft Windows Resource Compiler (RC) requires a comma between the event and idvalue parameters in the ACCELERATORS statement.
Expected control class name  
  The class parameter of a CONTROL statement in the DIALOG statement must be one of the following control types: BUTTON, COMBOBOX, EDIT, LISTBOX, SCROLLBAR, STATIC, or user-defined. Make sure that the class is spelled correctly.
Expected font face name  
  The typeface parameter of the FONT statement in the DIALOG statement must be an ASCII character string enclosed in double quotation marks. This parameter specifies the name of a font.
Expected ID value for Menuitem  
  The MENU statement must contain a MENUITEM statement, which contains either an integer or a symbolic constant in the MenuID parameter.
Expected Menu String  
  Each MENUITEM and POPUP statement must contain a text parameter. This parameter is a string enclosed in double quotation marks that specifies the name of the menu item or pop-up menu. A MENUITEM SEPARATOR statement requires no quoted string.
Expected numeric command value  
  Microsoft Windows Resource Compiler (RC) was expecting a numeric idvalue parameter in the ACCELERATORS statement. Make sure that you have used a #define constant to specify the value and that the constant used is spelled correctly.
Expected numeric constant in string table  
  A numeric constant, defined in a #define statement, must immediately follow the BEGIN keyword in a STRINGTABLE statement.
Expected numeric point size  
  The pointsize parameter of the FONT statement in the DIALOG statement must be an integer point-size value.
Expected Numerical Dialog constant  
  A DIALOG statement requires integer values for the x, y, width, and height parameters. Make sure that these values, which are included after the DIALOG keyword are not negative.
Expected String in STRINGTABLE  
  A string is expected after each numeric stringid parameter in a STRINGTABLE statement.
Expected String or Constant Accelerator command  
  Microsoft Windows Resource Compiler (RC) was not able to determine which key was being set up for the accelerator. The event parameter in the ACCELERATORS statement might be invalid.
Expected VALUE, BLOCK, or END keyword.  
  The VERSIONINFO structure requires a VALUE, BLOCK, or END keyword.
Expecting number for ID  
  A number is expected for the id parameter of a control statement in the DIALOG statement. Make sure that you have a number or a #define statement for the control identifier.
Expecting quoted string for key  
  The key string following the BLOCK or VALUE keyword should be enclosed in double quotation marks.
Expecting quoted string in dialog class  
  The class parameter of the CLASS statement in the DIALOG statement must be an integer or a string enclosed in double quotation marks.
Expecting quoted string in dialog title  
  The captiontext parameter of the CAPTION statement in the DIALOG statement must be an ASCII character string, enclosed in double quotation marks.
F  
Fast-load area is [size] bytes at offset 0x[address]  
  (V) This is the size, in bytes, of all the following segments:

Segments with the PRELOAD attribute

Segments with the DISCARDABLE attribute

Code segments that contain the entry point, WinMain

Data segments (which should not be discardable)

  To disable fast loading, use the –k option. Fast loading is the placement of segments in a contiguous area in the executable (.EXE) file for quicker loading. The offset is from the the beginning of the file.
File not created by LINK  
  You must create the executable (.EXE) file with an appropriate version of the linker.
File not found: filename  
  The file specified in the rc command was not found. Make sure that the file has not been moved to another directory and that the filename or path is typed correctly.
Font names must be ordinals  
  The pointsize parameter in the FONT statement must be an integer, not a string.
I  
Insufficient memory to spawn RCPP.EXE  
  There wasn't enough memory to run the preprocessor (RCPP.EXE). Try disabling any memory-resident software that might be taking up too much memory. To verify the amount of memory you have, use the chkdsk command.
Invalid Accelerator  
  An event parameter in the ACCELERATORS statement was not recognized or was more than two characters long.
Invalid Accelerator Type (ASCII or VIRTKEY)  
  The type parameter in the ACCELERATORS statement must contain either the ASCII or VIRTKEY value.
Invalid control character  
  A control character in the ACCELERATORS statement is invalid. A valid control character consists of a caret (^) followed by a single letter.
Invalid Control type  
  The control statement in a DIALOG statement must be one of the following: CHECKBOX, COMBOBOX, CONTROL, CTEXT, DEFPUSHBUTTON, EDITTEXT, GROUPBOX, ICON, LISTBOX, LTEXT, PUSHBUTTON, RADIOBUTTON, RTEXT, or SCROLLBAR.
Invalid directive in preprocessed RC file  
  The specified filename has an embedded newline character.
Invalid .EXE file  
  The executable (.EXE) file is invalid. Make sure that the linker created it correctly and that the file exists.
Invalid switch, option  
  An option used was invalid. For a list of the command-line options, use the rc –? command.
Invalid type  
  The resource type was not among the types defined in the include file.
Invalid usage. Use rc –? for Help  
  Make sure that you have at least one filename to work with. For a list of the command-line options, use the RC –? command.
I/O error reading file.  
  Read failed. Since this is a generic routine, no specific filename is supplied.
I/O error seeking in file  
  Seeking in file failed. Since this is a generic routine, no specific filename is supplied.
I/O error writing file.  
  Write failed. Since this is a generic routine, no specific filename is supplied.
N  
No executable filename specified.  
  The –FE option was used, but no executable (.EXE) file was specified.
No resource binary filename specified.  
  The –FO option was used, but no binary resource (.RES) file was specified.
Not a Microsoft Windows format .EXE file  
  Make sure that the linker created the executable (.EXE) file correctly and that the file exists.
O  
Old DIB in resource-name. Pass it through IMAGEDIT.  
  The resource file specified is not compatible with Windows version 3.1. Make sure you have read and saved this file using the latest version of Microsoft Image Editor (IMAGEDIT.EXE). (Image Editor has replaced SDK Paint.)
Out of far heap memory  
  There wasn't enough memory. Try disabling any memory-resident software that might be taking up too much space. To find out how much memory you have, use the chkdsk command.
Out of memory, needed n bytes  
  Microsoft Windows Resource Compiler (RC) was not able to allocate the specified amount of memory.
R  
RC: Invalid swap area size: –S string  
  Invalid swap area size. Check your syntax for the –S option on the command line for the Microsoft Windows Resource Compiler (RC). The following examples show acceptable command lines:
RC  S123
RC  S123K  ; where K is kilobytes

RC S123p ; where p is paragraphs

RC: Invalid switch: option  
  An option used was invalid. For a list of the command-line options, use the rc –? command.
RC: RCPP.ERR not found  
  The RCPP.ERR file must be in the current directory or in a directory specified in the PATH environment variable.
RC terminated by user  
  A CTRL+C key combination was pressed, exiting Microsoft Windows Resource Compiler (RC).
RC terminating after preprocessor errors  
  For information about preprocessor errors, see the documentation for the preprocessor.
RCPP.EXE command line greater than 128 bytes  
  The command line for the preprocessor (RCPP.EXE) was too long.
RCPP.EXE is not a valid executable  
  The preprocessor (RCPP.EXE) may have been altered. Try copying the file again from the Microsoft Windows Software Development Kit (SDK) disks.
Resource file resource-name is not in version-number format.  
  Make sure your icons and cursors have been read and saved using the latest version of Microsoft Image Editor (IMAGEDIT.EXE).
Resources will be aligned on number byte boundaries  
  (V) The alignment is determined by an option on the command line for the linker.
S  
Sorting preload segments and resources into fast-load section  
  (V) Microsoft Windows Resource Compiler (RC) is sorting the preloaded segments into a contiguous area in the executable (.EXE) file (the fast-load section) so that they can be loaded quickly.
T  
Text string or ordinal expected in Control  
  The text parameter of a CONTROL statement in the DIALOG statement must be either a text string or an ordinal reference to the type of control that is expected. If using an ordinal, make sure that you have a #define statement for the control.
The EXETYPE of this program is not Windows  
  The EXETYPE WINDOWS statement did not appear in the module-definition (.DEF) file. Since the linker might make optimizations that are not appropriate for Windows, the EXETYPE WINDOWS statement must be specified.
U  
Unable to create destination  
  Microsoft Windows Resource Compiler (RC) was not able to create the destination file. Make sure that there is enough disk space.
Unable to open exe-file  
  Microsoft Windows Resource Compiler (RC) could not open the executable (.EXE) file. Make sure that the linker created it correctly and that the file exists.
Unbalanced Parentheses  
  Make sure that you have closed every opening parenthesis in the DIALOG statement.
Unexpected value in RCData  
  The values for the raw-data parameter in the RCDATA statement must be integers or strings, separated by commas. Make sure that you did not leave out a comma or a quotation mark around a string.
Unexpected value in value data  
  A statement contained information whose format or size was different from the expected value for that parameter.
Unknown DIB header format  
  The device-independent bitmap (DIB) header is not a BITMAPCOREHEADER or BITMAPINFOHEADER structure.
Unknown error spawning RCPP.EXE  
  For an unknown reason, the preprocessor (RCPP.EXE) has not started. Try copying the file again from the SDK disks and use the chkdsk command to verify the amount of available memory.
Unknown Menu SubType  
  The item-definitions parameter of the MENU statement can contain only MENUITEM and POPUP statements.
Unrecognized VERSIONINFO field; BEGIN or comma expected  
  The format of the information following a VERSIONINFO statement is incorrect.
V  
Version WORDs separated by commas expected  
  Values in an information block for a VERSIONINFO statement should be separated by commas.
W  
Warning: ASCII character not equivalent to virtual key code  
  An invalid virtual-key code exists in the ACCELERATORS statement. The ASCII values for some characters (such as *, ^, or &) are not equivalent to the virtual-key codes for the corresponding keys. (In the case of the asterisk ([*]), the virtual-key code is equivalent to the ASCII value for 8, the numeric character on the same key. Therefore, the statement VIRTKEY '* ' is invalid. For information about these values, see the Microsoft Windows Programmer's Reference, Volume 3.
Warning: SHIFT or CONTROL used without VIRTKEY  
  The ALT, SHIFT, and CONTROL options apply only to virtual keys in the ACCELERATORS statement. Make sure that the VIRTKEY option is used with one of these other options.
Warning: string segment number set to PRELOAD  
  Microsoft Windows Resource Compiler (RC) displays this warning when it copies a segment that must be preloaded but is not marked PRELOAD in the module-definition (.DEF) file for the linker. All nondiscardable segments should be preloaded, including automatic data segments, fixed segments, and the entry point of the code (WinMain). (The attributes of code segments are set by the .DEF file.)
Writing resource resource-name or ordinal-id. resource type (resource size)  
  (V) Microsoft Windows Resource Compiler (RC) is writing the resource name or ordinal identifier, followed by a period and the resource type and size, in bytes.