在.rc文件中使用预处理器宏 我在VisualStudio社区2015中有一个C++程序,在这里我需要为调试和发布版本包含一个不同的资源。通过为调试版本定义\u Debug宏来区分调试版本和发布版本,否则不定义宏。 因此,我很自然地尝试将#if defin

在.rc文件中使用预处理器宏 我在VisualStudio社区2015中有一个C++程序,在这里我需要为调试和发布版本包含一个不同的资源。通过为调试版本定义\u Debug宏来区分调试版本和发布版本,否则不定义宏。 因此,我很自然地尝试将#if defin,c++,visual-studio-2015,embedded-resource,C++,Visual Studio 2015,Embedded Resource,在.rc文件中使用预处理器宏 我在VisualStudio社区2015中有一个C++程序,在这里我需要为调试和发布版本包含一个不同的资源。通过为调试版本定义\u Debug宏来区分调试版本和发布版本,否则不定义宏。 因此,我很自然地尝试将#if defined(_DEBUG)放入我的.rc文件中,但在编译资源编译器时,它的行为就像宏未定义一样,并将其编译为发布版本(如果未定义)。 如何使资源编译器看到宏?编译器不将“rc”文件作为输入,因此在其中编写C代码是毫无意义的(而且可能也是有害的,因为

在.rc文件中使用预处理器宏 <>我在VisualStudio社区2015中有一个C++程序,在这里我需要为调试和发布版本包含一个不同的资源。通过为调试版本定义
\u Debug
宏来区分调试版本和发布版本,否则不定义宏。

因此,我很自然地尝试将
#if defined(_DEBUG)
放入我的.rc文件中,但在编译资源编译器时,它的行为就像宏未定义一样,并将其编译为发布版本(如果未定义)。


如何使资源编译器看到宏?

编译器不将“rc”文件作为输入,因此在其中编写C代码是毫无意义的(而且可能也是有害的,因为VS中的其他模块将其作为输入,并且该模块需要某种语言(C除外))@barakmanos它能够理解预处理器语句。您需要在
rc
命令和
cl
命令上定义
\u DEBUG
。请参见VS中.rc文件的文件属性。另请参见定义的
可能不受支持。仅
#ifdef
已记录-需要测试。是否100%确定已将项目配置为为此.rc文件定义调试宏?如果“是”,则可能尝试用
\ifdef\u DEBUG
替换
\If defined(\u DEBUG)
。第二个应根据规范-。.rc文件支持的预处理器指令与C/C++源代码支持的预处理器指令不同。是否有一种方法可以为资源编译器和编译器设置相同的预处理器定义,而无需在每次对它们进行更改时复制粘贴?