资源编译器错误 RW2001

预处理 RC 文件中的无效指令

RC 文件包含 #pragma 指令

将 #ifndef 预处理器指令与资源编译器在处理包含文件时定义的 RC_INVOKED 常量一起使用。 将 #pragma 指令放置在定义 RC_INVOKED 常量时未处理的代码块中。 块中的代码仅由 C/C++ 编译器处理,而不是由资源编译器处理。 下面的示例代码演示了此方法:

#ifndef RC_INVOKED
#pragma pack(2)  // C/C++ only, ignored by Resource Compiler
#endif

#pragma 预处理器指令在 .RC 文件中没有任何意义。 #include 预处理器指令经常在 .RC 文件中用于包含头文件(基于项目的自定义头文件或 Microsoft 及其产品之一提供的标准头文件)。 其中一些包含文件包含 #pragma 指令。 由于头文件可以包含一个或多个其他头文件,因此包含有问题的 #pragma 指令的文件可能不会立即显现出来

#ifndef RC_INVOKED 技术可以控制在基于项目的头文件中包含头文件