如何使用/ load .rc文件进行多语言应用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用/ load .rc文件进行多语言应用?相关的知识,希望对你有一定的参考价值。

我正在使用Visual ++中的VC ++,MFC开发多语言应用程序。我为每种语言都有单独的.rc文件。 说

English.rc   //having string table for English language
French.rc    //having string table for French language
German.rc     //having string table for German language

每种语言都保持其字符串表。 因为我们可以使用函数LoadString(ID_HERE)从字符串表中获取字符串值。我想链接不同的语言.rc文件,以便我可以获得不同语言的字符串。默认情况下,English.rc文件与项目相关联。我想知道如何使用它将其更改为另一个.rc文件。

如何在运行时加载/链接任何特定语言的.rc文件,或者可以通过在下拉框中选择任何语言来更改语言? 我不想为它使用DLL方法。是否有任何直接方法将.rc文件链接到项目?

答案

就是那样。您必须创建资源DLL并从中加载资源。另一种方法是将所有资源作为语言依赖条件。然后,MFC将根据操作系统语言选择资源。但是对于大型项目来说几乎不可能保持所有语言同步,并且您无法控制所显示的语言。

语言资源dll的工作方式如下:

HMODULE hm = ::LoadLibrary(language_dll);
if(hm)
{
    AfxSetResourceHandle(hm);

    if(m_hLanguageDLL)
        ::FreeLibrary(m_hLanguageDLL);
    m_hLanguageDLL = hm;
}

以上是关于如何使用/ load .rc文件进行多语言应用?的主要内容,如果未能解决你的问题,请参考以下文章

[sciter]:sciter如何使用i18实现桌面应用多语言切换及其利弊

表单验证,与多语言支持,CI

PHP - 如何使用带有.po文件的gettext()创建一个简单的多语言应用程序

如何在单个 EXE 中嵌入多语言 *.resx(或 *.resources)文件?

如何在单个EXE中嵌入多语言* .resx(或* .resources)文件?

在WinForm应用程序中快速实现多语言的处理--开发框架模块的整合