我正在使用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文件,或者可以通过在下拉框中选择任何语言来更改语言?
我不想为它使用DLL方法。有没有直接的方法将.rc文件链接到项目?
答案 0 :(得分:0)
就是这样。您必须创建资源DLL并从中加载资源。另一种方法是将所有资源作为语言依赖条件。然后,MFC将根据操作系统语言选择资源。 但是,对于大型项目来说,几乎不可能保持所有语言同步,并且您无法控制所显示的语言。
语言资源dll的工作方式如下:
HMODULE hm = ::LoadLibrary(language_dll);
if(hm)
{
AfxSetResourceHandle(hm);
if(m_hLanguageDLL)
::FreeLibrary(m_hLanguageDLL);
m_hLanguageDLL = hm;
}