我正在尝试使用宏自动生成 C++ 项目的构建版本。
如果我执行以下操作,一切正常。
版本控制.h
...
#define VERSION_MAJOR 1
#define VERSION_MINOR 0
...
MyApp.rc
...
#include "Versioning.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION VERSION_MAJOR, VERSION_MINOR, 0, 0
PRODUCTVERSION VERSION_MAJOR, VERSION_MINOR, 0, 0
FILEFLAGSMASK 0x3fL
...
但是,如果我尝试包含更复杂的内容,例如数学,编译器会生成错误
#define VERSION_MAJOR (2 / 2)
error RC1013: mismatched parentheses
error RC2104: undefined keyword or key name: /
我需要在宏中使用更复杂的数学表达式、调用其他类、执行字符串比较等。
我的猜测是我正在编写的宏没有问题,而是资源文件处理宏的方式有问题。
有什么想法吗?
注意:我使用的是 Visual Studio Ultimate 2013 Update 3。
最佳答案
资源编译器不如源代码编译器灵活。您不能在资源脚本中使用复杂的宏。如果需要,您将不得不使用单独的预处理器来执行计算并生成必要的宏值以供资源编译器使用。
关于c++ - 在资源文件中使用宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26243945/