Windows mobile多国语言实现
2011-01-06 10:58:40 来源:WEB开发网介绍一种多国语言的实现办法,这也是微软推荐的方式,打开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
更多精彩
赞助商链接