从Visual C ++资源文件获取FILEVERSION

时间:2009-10-02 01:04:34

标签: c++ visual-c++ versioning

在编译时是否有一些预处理器关键字用于访问我的.rc文件中定义的FILEVERSION?

我真的不想添加额外的代码来从编译产品本身读取文件信息。

2 个答案:

答案 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值,例如在对话框中显示应用程序的版本资源。