在编译时是否有一些预处理器关键字用于访问我的.rc文件中定义的FILEVERSION?
我真的不想添加额外的代码来从编译产品本身读取文件信息。
答案 0 :(得分:8)
预处理器也在.RC文件上运行。在.RC和源代码中包含的标头中定义共享数据。
即,在foo.h中:
#define MY_PRODUCT_NAME Foo
然后在foo.rc中:
#include "foo.h"
VS_VERSION_INFO VERSIONINFO
// Many lines omitted
VALUE "ProductName", MY_PRODUCT_NAME
然后在foo.cpp中:
#include "foo.h"
cout << MY_PRODUCT_NAME;
答案 1 :(得分:2)
我对这个问题的解决方案很简单,效果很好,并没有被资源编辑器删除。 1.将整个VS_VERSION_INFO部分移动到.RC2文件中。 2.将所有版本号和字符串替换为新版本.h文件中#define的值。 3.将#include“version.h”添加到.RC2文件中。 现在,您还可以在其他.CPP文件中包含version.h,并在代码中使用#define值,例如在对话框中显示应用程序的版本资源。