用VC纯资源dll解决国际化问题(二)

2013-03-05 13:59:02 · 作者: · 浏览: 648

 

  三、创建中文版的DLL

  具体的方法同创建英文版的DLL一样,把项目名改为chinese.只是从 Project 菜单中选择 Setting… 选项。然后在Link标签下"Project Options" 添加 "/NOENTRY" 选项。最后,编译并建立动态链接库。

  四、修改 multilanguage工程

  在 CMultilanguageApp 类中添加如下的成员变量:

  private:

  BOOL m_bChinese;

  HINSTANCE m_hLangDLL;

  构造函数中初始化:

  CMultilanguageApp::CMultilanguageApp()

  {

  m_bChinese = TRUE;

  m_hLangDLL = NULL;

  }

  在InitInstance()函数修改资源加载顺序:

  BOOL CMultilanguageApp::InitInstance()

  {

  AfxEnableControlContainer();

  if (m_bChinese)

  {

  m_hLangDLL=::LoadLibrary("chinese.dll");

  }

  else

  {

  m_hLangDLL=::LoadLibrary("english.dll");

  }

  AfxSetResourceHandle(m_hLangDLL);

  ……

  }

  别忘了ExitInstance()函数释放掉加载的dll资源

  int CMultilanguageApp::ExitInstance()

  {

  if(m_hLangDLL)

  AfxFreeLibrary(m_hLangDLL);

  return CWinApp::ExitInstance();

  }

  最后编译运行!

  小结

  以上的方法实现了中英文软件界面,不过,只要稍做扩展,很容易实现对多语言的支持。