RC文件中不同语言部分的资源标识符相同,为什么可能?

时间:2012-10-17 08:16:14

标签: visual-studio winapi mfc resource-file

我注意到RC文件可以有重复的资源(即相同的资源标识符),只要它们位于不同的语言部分。

例如,这在我的rc文件中编译没有错误:

#define IDS_STRING_001 10001

LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
    IDS_STRING_001 "English"
END

LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
    IDS_STRING_001 "Japanese"
END

为什么这可能?它是否打算用作替代的本地化方式,而不是使用单独的DLL来保存本地化资源?

1 个答案:

答案 0 :(得分:2)

是的,这是为您的应用程序进行本地化的一种方法。来自this link

  

这种方法背后的主要思想是从源代码中分离出资源,创建一个仅包含资源的DLL,其中包含所有目标语言的所有本地化资源。在不同语言标记下的RC文件中定义相同资源ID的多个副本。在下面的示例中,为法语和英语定义了字符串ID IDS_ENUMSTRTEST。