【发布时间】:2021-08-08 16:23:30
【问题描述】:
我的项目中的 .rc 文件有一个奇怪的问题。
我设置了一些变量来在我的对话框中显示版本号。
BEGIN
VALUE "CompanyName", "Big company"
VALUE "FileDescription", "nice software"
VALUE "FileVersion", VERSION_NUMBER
VALUE "InternalName", "some name"
VALUE "LegalCopyright", "some more strings"
VALUE "OriginalFilename", "some.exe"
VALUE "ProductName", "some name"
VALUE "ProductVersion", VERSION_NUMBER
END
问题是,当我在 Visual Studio 中更改任何对话框时,即使只是移动一个按钮,也会更改变量。在这种情况下:VERSION_NUMBER 到“004.005.0.0”。这还不错,我的意思是在编译时它最终应该填充有标题中定义的正确数据:
#define MAJOR 004
#define MINOR 005
#define RELEASE 0
#define BUILD 0
#define VERSION_NUMBER STRINGIFY(MAJOR) "." STRINGIFY(MINOR) "." STRINGIFY(RELEASE) "." STRINGIFY(BUILD)
#define VERSION_NUMBER_DWORD MAJOR,MINOR,RELEASE,BUILD
#endif
但不是在我编辑对话框时。
现在我们在构建服务器上有一个 powershell 脚本,它会在编译之前搜索这些字符串并重置它们,但这并不是最优雅的解决方案。有没有办法告诉 Visual Studio 在编译前停止更改这些变量?
【问题讨论】:
-
您维护且不希望 IDE 向导接触的资源不应进入主
.rc文件,而应置于主文件包含的单独资源文件中一。传统上给出了.rc2扩展名,例如参见here。 -
谢谢,对我帮助很大^^
标签: c++ visual-studio mfc dialog c++17