蓝色恋枫

愿风指引你的到来。

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  大家平常用到的软件,一般都支持多语言,至少支持两种,中文和英文,实现这样的功能有许多方法,不过在windows mobile下最简单的方法是用纯资源DLL来支持多语言。什么是纯资源DLL?就是DLL中主要只有一些资源,并且不提供DLL入口点。下面是如何创建一个原程序相关的纯资源的DLL。

  首先是新建一个普通的智能设备DLL工程,然后在工程属性-》链接器-》高级-》无入口点,选择是(/NOENTRY),然后将原程序所有的资源文件拷贝至这个工程下,然后添加进工程,然后修改资源里的所有内容,要做什么语言资源就改成什么语言内容,然后编译,OK,一个纯资源的DLL做成了。

  下面是如何在原程序中调用这个DLL,首先你的程序已经有了一个缺省的资源了,所以在程序的入口处,你可以通过对当前系统语言判断来决定调用哪个资源,下面的代码,原程序时内置中文资源,然后DLL是英文资源。

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)

{

   int langID = GetSystemDefaultUILanguage();
 if( 0x0804 == langID )//中文
 {
       globalVar.hRcInst = hInstance;//设定一个全局的instance 来保存winmain传入的instance 。
 }
 else if( 0x0409 == langID )//英文
 {

  globalVar.hRcInst = LoadLibrary(_T("EPatch.dll"));//获取到英文纯资源DLL的instance 。
   }
}

好了,这样就完成了DLL的载入,下面需要用到资源的时候,就根据globalVar.hRcInst 去获得对应资源了,这个方法的关键是,你的程序中所有需要用到字符串的地方,全部写在资源里,然后调用,这样可以保证完美语言支持。

posted on 2009-11-19 10:44  蓝色恋枫  阅读(202)  评论(0)    收藏  举报