特殊的语言常量使 .RC 文件不可编辑

Special language constants make the .RC file uneditable

提问人:alancc 提问时间:9/30/2023 更新时间:9/30/2023 访问量:12

问:

我正在使用 VS2008。

我使用 Soluling 来翻译包含一些字符串表的 Test.RC 文件,它生成一些特殊语言的常量,例如 LANG_HINDI,这些常量在 Windows 工具包中定义,例如

C:\Program Files (x86)\Windows Kits\8.1\Include\shared\ntdef.h

因此,我创建了一个头文件 LangConsts.h 来包含这些常量。

然后在 Test.RC 文件中,我添加以下行:

#include "LangConsts.h"

因此,Test.rc 可以在 VS2008 中成功打开,特殊语言将被识别如下:

enter image description here

并且该文件可以在项目中成功编译和链接。

但是,每当我修改资源时,例如更改版本号并保存资源文件,VS2008 都会尝试重新保存所有字符串表。

然后当我尝试重建项目时,我会得到很多错误:

>.\ResDLL.rc(9786) : error RC2144 : PRIMARY LANGUAGE ID not a number
1>.\ResDLL.rc(9794) : error RC2135 : file not found: STRINGTABLE
1>.\ResDLL.rc(9796) : error RC2135 : file not found: M
1>.\ResDLL.rc(9798) : error RC2135 : file not found: 64

然后我打开 ResDLL.rc 并检查它有什么问题,发现 VS2008 只是删除了以下行:

#include "LangConsts.h"

第 9786 行包含一个语言常量:

LANGUAGE LANG_AZERI_LATIN, SUBLANG_AZERI_LATIN

仅在 LangConsts.h 中定义。

那么如何防止VS2008损坏.RC文件?

visual-studio-2008 资源文件

评论


答: 暂无答案