Visual studio 在Visual Studio for Win32项目中本地化多个.rc文件

Visual studio 在Visual Studio for Win32项目中本地化多个.rc文件,visual-studio,winapi,visual-c++,localization,resource-files,Visual Studio,Winapi,Visual C++,Localization,Resource Files,如何在Visual studio for Win32项目中本地化多个.rc文件?我在这里学习了教程,它描述了如何将win32解决方案本地化为两种语言:英语(美国)和法语(法国),这两种语言分别应用于en-US和fr项目。但是,每个项目只有一个资源文件:en-US.rc和fr-fr.rc。但我不清楚,如果每种语言有2个或更多资源文件,例如en-US.rc、en-US2.rc、fr-fr.rc和fr-FR2.rc,我应该更改什么。当我尝试创建这些附加的.rc文件并在其中放置STRINGTABLE资源

如何在Visual studio for Win32项目中本地化多个.rc文件?我在这里学习了教程,它描述了如何将win32解决方案本地化为两种语言:英语(美国)和法语(法国),这两种语言分别应用于en-US和fr项目。但是,每个项目只有一个资源文件:en-US.rc和fr-fr.rc。但我不清楚,如果每种语言有2个或更多资源文件,例如en-US.rc、en-US2.rc、fr-fr.rc和fr-FR2.rc,我应该更改什么。当我尝试创建这些附加的.rc文件并在其中放置STRINGTABLE资源,然后构建项目时,我得到错误:

1> CVTRES:致命错误CVT1100:重复资源。类型:MUI,名称:1,语言:0x0409 1> 链接:致命错误LNK1123:转换为COFF期间失败:文件无效或损坏

我尝试将TLBID:id值更改为1以外的值,因为这是此问题的建议解决方案,但它无法解决此问题


我们的解决方案中有多个DLL项目,每个项目只包含一组资源。在运行时
InitInstance()
,我们选择适当的语言DLL,代码如下

hInst_aRes = LoadLibrary(sResourceDllName);
if (hInst_aRes == NULL)
{    // handle <resoure-DLL not available>
     return FALSE;
}
AfxSetResourceHandle(hInst_aRes);
hInst_aRes=LoadLibrary(sResourceDllName);
if(hInst_aRes==NULL)
{//手柄
返回FALSE;
}
AfxSetResourceHandle(hInst_aRes);

并使用
hInst_aRes
加载字符串、对话框,

好的,我遵循了这里的教程,它也适用于多个.rc文件。

避免对资源文件太过花哨,工具可以追溯到石器时代。在软件开发中,25年是一个漫长的过程。您希望它能为您合并字符串表,但它不知道如何做到这一点。只需将它们保存在一个.rc文件中。如果有必要,您可以使用#include指令将文件分开。我会试试,谢谢您的回答。我只是在寻找一个平稳的过渡,我们的老项目有>50.rc文件(他们是非本地化的,只为一种(英语)语言的工作)到一个项目,将是多语言(需要支持日语在我的情况下,以及)。