纯资源的dll文件来实现多语言

来源:互联网 发布:vip域名备案的可能性 编辑:程序博客网 时间:2024/06/06 04:50
在使用vc写简繁体通用程序时,对实现菜单、界面、tooltips等的文字时无法实现通用。如果写简体和繁体各一套程序,那肯定不现实。查找所有资料和文章都只能实现菜单的多语言,且使用起来也不方便;并且无法实现界面、tooltips等的多语言。因而,采用纯资源的dll文件来实现多语言。
纯资源dll文件实现步骤如下:
(1)创建简繁体mdi或sdi程序后,把vc框架自动创建的.rc,.rc2,.ico,.bmp等文件从程序框架中删除;
(2)使用projects的win32 dynamic-link library分别创建简繁体纯资源dll文件,把由mdi或sdi程序创建的.rc,.rc2,.ico,.bmp等文件加入到该工程文件中;
(3)在project菜单项选择settings然后选择project settings的link标签;然后在project options框内输入/noentry。编译后就产生纯资源dll文件;

纯资源dll文件加入没有任何资源的mdi或sdi程序,其步骤如下:
(1)在主应用程序类的.h文件中定义protected 的 hinstance 类型变量(如:mhinstmenu);    
(2)在主应用程序类的.cpp文件::initinstance()函数过程中添加下面代码:
    mhinstmenu = ::loadlibrary("menu.dll");  // menu.dll为多语言纯资源的dll文件
    if(mhinstmenu == null)
    {
        return false; // failed to load the localized resources
    }
    else {
        afxsetresourcehandle(m_hinstmenu); // get resources from the dll
    }
(3)在主应用程序类的.cpp文件::exitinstance()函数过程中添加下面代码:
    freelibrary(mhinstmenu);

注意:menu.dll文件可以有三种放置方法:
    a、和.exe文件在同一个路径下面;
    b、放在windows98的system或windows2000的system32路径下面;
    c、放在通过path设置的路径下面。