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:
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?
