PRB: Resource Compiler Error RW2001 Generated by #pragmaLast reviewed: July 17, 1997Article ID: Q94571 |
3.00 3.10 3.11 | 3.10
MS-DOS | WINDOWS NTkbtool kbfasttip kbprb The information in this article applies to:
SYMPTOMSAn attempt to process a resource command (.RC) file with the Microsoft Windows Resource Compiler or the Microsoft Windows 32 Resource Compiler fails and the compiler generates the following error message:
error RW2001 : Invalid directive in preprocessed RC file CAUSEThe RC file contains a #pragma directive.
RESOLUTIONUse the #ifndef preprocessor directive with the RC_INVOKED constant that the Resource Compiler defines when it processes an include file. Place the #pragma directive inside a block of code that is not processed when the RC_INVOKED constant is defined. Code in the block is processed only by the C/C++ compiler and not by the Resource Compiler. The following sample code demonstrates this technique:
#ifndef RC_INVOKED #pragma pack(2) // C/C++ only, ignored by Resource Compiler #endif MORE INFORMATIONThe #pragma preprocessor directive has no meaning in an .RC file. The #include preprocessor directive is used frequently in an .RC file toinclude a header file (either a project-based custom header file or a standard header file provided by Microsoft with one of its products). Some of these include files contain the #pragma directive. Because a header file can include one or more other header files, the file that contains the offending #pragma directive may not be immediately obvious. Under most circumstances, an application includes only the header files that define its symbols. However, many of the system include files provided with Microsoft C/C++ version 7.0 contain the #pragma directive. Many of these files do not include the RC_INVOKED test because they are not intended for use with the Resource Compiler. Header files designed for use with the Resource Compiler (such as WINDOWS.H) do not cause this error. The #ifndef RC_INVOKED technique can control including header files in project-based header files.
|
Additional reference words: 7.00 1.00 3.11 3.10
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |