The error messages produced by the resource compiler utility (RC) and its
preprocessor are listed below.
RC Preprocessor Fatal Error Messages
Error Message Descriptions
C1012
bad parenthesis nesting - missing symbol
Explanation: You wrote an expression which was missing the given
left or right parenthesis symbol.
Action: Rewrite the expression with balanced parentheses.
C1014
too many include files Explanation:
You might have tried to include a file recursively.
Action: Remove the include directive for any file which has already
been included to the preprocessor.
C1015
cannot open include file 'filename'
Explanation: The preprocessor could not locate the given include
file.
Action: If the include file is not in the current directory or in
a directory named in the INCLUDE environment variable, or in a directory
specified by a -i option, you must provide the full path and include file
name.
C1016
#if[n]def expected an identifier Explanation:You
wrote an ifdef or ifndef directive with no macro name.
Action: Supply the missing name.
C1017
invalid integer constant expression
Explanation: You used an incorrect expression where an integer constant
was expected.
Action: Supply a correct expression to the directive.
C1018
unexpected #elif Explanation: You
used a directive in an incorrect context.
Action: Correct the logic of the if directives.
C1019
unexpected #else Explanation: You
used a directive in an incorrect context.
Action: Correct the logic of the if directives.
C1020
unexpected #endif Explanation: You
used a directive in an incorrect context.
Action: Correct the logic of the if directives.
C1021
bad preprocessor command 'command' Explanation:
The given command is not a recognized directive. You might have misspelled
the directive.
Action: Use the correct spelling for the directive.
C1022
expected #endif Explanation: You
wrote an if directive but omitted any endif.
Action: Supply the missing endif directive.
C1056
compiler limit 'name' out of macro expansion
space Explanation: The macro called name expanded to a length exceeding
2042 bytes.
Action: Revise your definition of the macro so that its value is
shorter than the length limit.
C1065
compiler limit 'name' macro definition
too big Explanation: The macro called name expanded to a length exceeding
2042 bytes.
Action: Revise your definition of the macro so that its value is
shorter than the length limit.
Resource Compiler Preprocessor Error Messages
C2001
newline in constant Explanation: You
wrote a string literal constant without the closing double quotation mark.
Action: Provide the ending double quote for the string.
C2004
expected defined(id) Explanation: You
wrote an if defined directive but omitted the macro name.
Action: Supply the missing macro name.
C2006
#include expected a file name,found
text Explanation: The preprocessor found the given text instead
of an include file name.
Action Supply the correct include file name.
C2007
#define syntax Explanation: The
syntax of your define directive is incorrect.
Action: Use the correct form as described for the define directive.
C2014
preprocessor command must start as first
non-white space Explanation: You wrote a directive with text on the
line before the number sign (#).
Action: Put the number sign at the beginning of a line.
RC Preprocessor warnings
C4005
name redefinition Explanation: You
attempted to redefine the macro name to a value different from its current
definition.
Action: To use a different macro value, define it as a macro using
another macro name.
C4067
unexpected characters following include
directive -newline expected Explanation: You specified a filename
to an include directive without surrounding the name by double quotation
marks or angle brackets.
Action: Use double quotation marks or angle brackets around the include
filename.
C4067
unexpected characters following 'endif'
directive - newline expected Explanation: No characters should appear
on the line of an endif or else directive after the directive keyword.
Action: Remove the extra characters.
C4067
unexpected characters following 'else'
directive-newline expected. Explanation: No characters should appear
on the line of an endif or else directive after the directive keyword.
Action: Remove the extra characters.
C4067
unexpected characters following 'undef'
directive - newline expected Explanation: You can undefine only one
macro on an undef directive. Action: Use separate undef directive
to undefine more than one macro.
Accelerator type required (CHAR, SCANCODE, or VIRTUALKEY)
Explanation: An
acceloption has not been specified in the accelerator table to define
the type of accelerator. If the accelerator character code
is something other than a single character or a character preceded by a
caret ( ^ ), an acceloption is required. Action: Check accelerator
table syntax.
BEGIN expected in accelerator table
Explanation: BEGIN
keyword missing from accelerator table. Action: Check syntax.
BEGIN expected in dialog or window template
Explanation: BEGIN
keyword missing from dialog or window template. Action: Check syntax.
BEGIN expected in menu
Explanation: BEGIN
keyword missing from menu. Action: Check syntax.
BEGIN expected in message table
Explanation: BEGIN
keyword missing from message table. Action: Check syntax.
BEGIN expected in RCData
Explanation: BEGIN
keyword missing from RCData table. Action: Check syntax.
BEGIN expected in String Table
Explanation: BEGIN
keyword missing from string table. Action: Check syntax.
Cannot re-use message constants
Explanation: Message
identifier has been used more than once in message table. Action: Check
message table syntax.
Cannot re-use string constants
Explanation: Message
identifier has been used more than once in string table. Action: Check
string table syntax.
Comma expected after item string
Explanation: A
comma must be used to separate the menu item identifier and the menu item
string. Action: Check menu syntax.
Control character out of range ( ^A - ^Z)
Explanation: Accelerator
character codes that use the Ctrl key, and are therefore preceded by a caret
( ^ ), must use alphabetic keys. Action: Check accelerator table
syntax.
END expected in dialog
Explanation: END
keyword missing from dialog template. Action: Check syntax.
END expected in menu
Explanation: END
keyword missing from menu. Action: Check syntax.
Error creating temp file
Explanation: Temporary
files are created by the resource compiler during the compilation process.
Action: Check that there is sufficient disk space to run the resource
compiler, and restart the resource compiler.
Expected comma in accelerator table
Explanation: Commas
are used in the accelerator table to separate the accelerator key, the accelerator
command, and the accelerator options. Action: Check accelerator table
syntax.
Expected ID value for menu item
Explanation: A
selection identifier is needed for each item within a menu. Action: Check
menu syntax.
Expected menu string
Explanation: A
character string should be specified in the menu definition to describe
the menu selection. Action: Check menu syntax. The string should
be enclosed in double quotation marks.
Expected numeric command value
Explanation: A
number should be used in the accelerator table to identify the message that
is generated by an accelerator key. Action: Check accelerator table
syntax.
Expected numeric constant in message table
Explanation: The
identifier that precedes a message definition must be an integer. Action: Check
message definition syntax.
Expected numeric constant in string table
Explanation: The
identifier that precedes a string definition must be an integer. Action: Check
string definition syntax.
Expected numerical dialog constant
Explanation: Integers
are required in dialog and window templates to specify the coordinates and
dimensions of the dialog box. Action: Check syntax of dialog box
definition.
Expected string in message table
Explanation: A
character string was not found in the message table. Action: Check
syntax. The string should be enclosed in double quotation marks.
Expected string in string table
Explanation: A
character string was not found in the string table. Action: Check
string table syntax. The string should be enclosed in double quotation marks.
Expected string or constant accelerator command
Explanation: The
accelerator character code is missing. Action: Check accelerator
table syntax.
File not found
Explanation: The resource
compiler could not find the .RC or .RES file that you requested. Action: Check
that the file is in the current directory and check the path to the directory.
Illegal empty BEGIN/END block found, resource not written
Explanation: A
BEGIN/END block with no DIALOG, CONTROL, or WINDOW statements in it was
found in the dialog template. Action: Delete unwanted BEGIN/END blocks.
Invalid accelerator
Explanation: The
character code specified as an accelerator key must be a valid keyboard
operation. Action: Check accelerator key definition syntax.
Invalid accelerator option
Explanation: The
accelerator option must be a valid keyword. Action: Check syntax.
Invalid control character
Explanation: The
accelerator key definition can include a caret ( ^ ) to specify that the
key should be used with the Ctrl key. Action: Check accelerator key
definition syntax.
Invalid Type
Explanation: The resource
type must be a valid keyword. Action: Check resource definition syntax.
Non-numeric template ID in dialog or window template
Explanation: The
resource identifier must be an integer. Action: Check dialog or window
template syntax.
Only one top level window allowed
Explanation: Only
one DIALOG, CONTROL, or WINDOW statement is allowed within the dialog or
window template. Action: Check dialog or window template syntax.
Resource Type keyword expected
Explanation: The
resource type must be specified in the resource script file. Action: Check
resource definition syntax.
String literal too long
Explanation: Strings
cannot be longer than 255 characters. Action: Edit the string.
Text string or ordinal expected in control
Explanation: A
text string can be specified in the DIALOG statement of a dialog template
to give it a title. If a title is not required, double quotation marks
must be used with no characters between them (" "). Action: Edit
DIALOG statement.
Unbalanced parentheses
Explanation: The
left and right parentheses have not been matched. Action: Edit the
parentheses.
Undefined keyword or key name
Explanation: An
invalid keyword or key name has been used. Action: Check syntax.
Unexpected end of file in string literal
Explanation: The
double quotation marks have not been closed at the end of a character string.
Action: Edit the string.
Unexpected value in RCData
Explanation: The
variable defined in RCData must be a string or a number. Action: Check
the RCData syntax.
Unknown dialog or window token
Explanation: The
dialog and window templates must use only the DIALOG, WINDOW, or CONTROL
keywords. Action: Check the dialog or window template syntax.
Unknown menu sub type
Explanation: Items
within a menu can be specified only with the MENUITEM and SUBMENU keywords.
Action: Check menu definition syntax.