Special language constants make the .RC file uneditable

16 Views Asked by At

I am using VS2008.

I use Soluling to translate a Test.RC file containing some string tables, and it generates constants of some special languages, such as LANG_HINDI, which is defined in Windows kits, such as

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

So I create a header file LangConsts.h to include these constants.

Then in the Test.RC file, I add the following line:

#include "LangConsts.h"

Thus the Test.rc can be opened in VS2008 successfully, the special languages will be recognized as below:

enter image description here

And the file can be complied and linked in the project successfully.

However, whenever I modify the resources, such as change the version number, and save the resource file, then VS2008 will try to resave all the string tables.

Then when I try to rebuild the project, I will get many errors:

>.\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

Then I open ResDLL.rc and check what's wrong with it, and find VS2008 just remove the following line:

#include "LangConsts.h"

And line 9786 contains a language constant:

LANGUAGE LANG_AZERI_LATIN, SUBLANG_AZERI_LATIN

which is only defined in LangConsts.h.

So how to prevent VS2008 from damaging the .RC file?

0

There are 0 best solutions below