windows - 在带有 SVN 修订号的 MFC 应用程序中以编程方式更新 FILEVERSION

标签 windows svn mfc versioninfo

如何以编程方式更新 MFC 应用程序中的 FILEVERSION 字符串?我有一个构建过程,用于生成一个头文件,其中包含给定版本的 SVN 版本。我正在使用来自 http://www.compuphase.com/svnrev.htm 的 SvnRev更新一个头文件,我用它来设置我的 MFC 应用程序的标题栏。现在我想将此 #define 用于我的 FILEVERION 信息。

最好的方法是什么?

最佳答案

.rc 文件可以像.c 文件一样#include 头文件。我有一个自动生成的 version.h 文件,它定义了如下内容:

#define MY_PRODUCT_VERSION    "0.47"
#define MY_PRODUCT_VERSION_NUM 0,47,0,0

然后我只有我的 .rc 文件 #include "version.h" 并使用这些定义。

VS_VERSION_INFO VERSIONINFO
 FILEVERSION MY_PRODUCT_VERSION_NUM
 PRODUCTVERSION MY_PRODUCT_VERSION_NUM
...
 VALUE "FileVersion", MY_PRODUCT_VERSION "\0"
 VALUE "ProductVersion", MY_PRODUCT_VERSION "\0"
...

我还没有在 MFC 项目中尝试过这种技术。可能需要将您的 VS_VERSION_INFO 资源移动到您的 .rc2 文件(Visual Studio 不会对其进行编辑)。

关于windows - 在带有 SVN 修订号的 MFC 应用程序中以编程方式更新 FILEVERSION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/108900/

相关文章:

windows - 有没有办法在 SVN 仓库中设置文件。在结帐时被自动忽略?

svn - Android Studio - 添加计划

c++ - 什么是 Win32 API (MFC) 等同于 .NET 中的 SystemInformation.CaptionHeight?

c++ - 无法检测 Windows 字体大小何时更改 C++ MFC

c++ - 将数据添加到 CArray 会出现错误 "cannot access private member declared in class ' CObject'"

c - 释放 malloc 2D 矩阵

c++ - 强制 Qt-Window 到特定屏幕

windows - ReadConsoleInputW 包装器和所有权

windows - 模式对话框窗口出现后按钮丢失 WM_LBUTTONUP

multithreading - SVN 结帐可以是多线程的吗?