万家灯火营销型网站,洛阳数码大厦做网站的在几楼,360推广官网,企业网站建设立项请示介绍一种多国语言的实现办法#xff0c;这也是微软推荐的方式#xff0c;打开windows mobile下的windows目录可以看到有很多以MUI为后缀名的文件#xff0c;例如shellres.dll.0804.mui、shell.dll.0804.mui。。。。。。我们可以用eXeScope.exe或者resources hacker这样的文件…介绍一种多国语言的实现办法这也是微软推荐的方式打开windows mobile下的windows目录可以看到有很多以MUI为后缀名的文件例如shellres.dll.0804.mui、shell.dll.0804.mui。。。。。。我们可以用eXeScope.exe或者resources hacker这样的文件查看器查看一下这些文件究竟是怎么一回事不难发现文件里面都是一些资源ID和相对应的字符串。也许你就疑惑这是为什么呢这些文件有什么作用呢下面分解。 MUI是Multilingual User Interface的缩写意为多语言用户界面主要是用来实现软件的国际化也就是软件的多国语言版本的实现。其实一个mui文件也是一个DLL来的但是这个dll有点特殊不像我们以往的带来了那样包含了很多的函数体供dll外或者本身调用而是只包含字符串资源所以可以在vs下新建一个dll项目不需要其他代码只需要dll的入口点如下 #include windows.h / // DLL Entry Point extern C BOOL WINAPI DllMain(HANDLE hInstance, DWORD dwReason, LPVOID lpReserved) { return TRUE; } 除此以外刚才也提到了dll里只包含字符串资源所以必须添加一个资源配置文件如***.rc在里面添加相应的字符串资源信息如下 IDR_HELLO_MENUBAR MENU DISCARDABLE BEGIN MENUITEM Exit, PSP_DLGINDIRECT POPUP Menu BEGIN MENUITEM Exit, PSP_DLGINDIRECT MENUITEM Test, ID_MENU_TEST END END 在这里要特别注意了因为每一个mui也就是说每一个dll就代表一种语言所以在资源配置文件里就是通过对每个字符串资源进行相应语言的更改达到多国语言的效果例如你要做成简体中文版本你就必须在重新建一个dll同样建立一个资源配置文件但是得把刚才上面的这段资源配置脚本代码改成如下 IDR_HELLO_MENUBAR MENU DISCARDABLE BEGIN MENUITEM 退出, PSP_DLGINDIRECT POPUP 菜单 BEGIN MENUITEM 退出, PSP_DLGINDIRECT MENUITEM 测试, ID_MENU_TEST END END 然后可以通过把定义资源ID的resources.h这个文件共享出来让多个mui文件和应用程序用同一个资源ID。 同时你还需要在dll项目添加一个导出文件如***.def,其实不需要导出函数名如下就可以 LIBRARY hello.exe.0804.mui EXPORTS 也许你还会问那应用程序怎么去通过匹配相应的mui文件来进行语言的定位请看。 刚才说到windows目录下有shellres.dll.0804.mui其实mui文件的命名有一定的规则可循可不是乱来的首先shellres.dll表明这个mui文件是专门用于shellres.dll多国语言版本再例如hello.exe.0804.mui这个表示是专用于hello.exe。然后0804这又是表示什么意思呢这是微软定义的语言ID是一个十六进制数例如简体中文的ID就是0x0804,而美国英语ID则是0409。其他国家的语言ID可以查看sdk中的Language Identifiers and Locales。 那系统怎么去实现识别应用使用哪一个mui文件呢在系统注册表中HKEY_CURRENT_USER\Control\Panel\Desktop\MultiUILanguageId记录了系统的默认语言ID所以系统会根据这个默认ID进行自动配置而不需程序员再使用代码控制。但是有一点要注意的是mui文件和应用程序要放在同一个目录下。在使用vs生成mui文件时可以通过对项目属性进行设置让vs直接生成mui文件在dll项目中”项目属性”----“链接器”----“常规”中的”输出文件” $(OutDir)/your_mui_name只需要修改your_mui_name为你相应的mui文件名就可以。 使用mui来实现多国语言版本的实现不需要更改应用程序的代码只需要直接添加或删除独立的mui文件mui文件和应用程序是高分离的方便管理。转载于:https://www.cnblogs.com/EricSu/archive/2010/11/17/1880107.html