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

时间:2017-12-20 10:05:59

标签: visual-c++ mfc

我正在使用VC ++,Visual Studio中的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文件链接到项目?

1 个答案:

答案 0 :(得分:0)

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

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

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

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