WTL应用程序向导(LUA版本) 源码简介

原创 visualfc   WTL的应用程序向导(LUA版)使用IupLua编写,本文将对其源代码作一下简要说明,并分析了该向导的多语言界面处理机制。   WTL的应用程序向导源代码可以从 http://code.google.com/p/visualfc/downloads/list下载。下面对其作一下简要说明。    一、开发环境:    本向导开发环境是Lua for Windows,该
摘要由CSDN通过智能技术生成
原创 visualfc
   WTL的应用程序向导(LUA版)使用IupLua编写,本文将对其源代码作一下简要说明,并分析了该向导的多语言界面处理机制。
   WTL的应用程序向导源代码可以从 http://code.google.com/p/visualfc/downloads/list下载。下面对其作一下简要说明。
   
一、开发环境:
    本向导开发环境是Lua for Windows,该项目地址为: http://luaforwindows.luaforge.net/
    wiz_main.wlua是向导主文件,使用纯文本格式编写。
    wiz_chs.wlua是中文向导,初始化了中文界面后调用wiz_main.wlua
    resource目录为向导使用的中文资源文件和图片
    Template目录为应用程序向导模板目录,从WTL80发行包中获取并增加部分功能。

二、向导控件:
    IupLua当前版本(2.7)未提供向导控件,所以我使用IupLua编写了一个向导控件。源代码位于iup/iupwizard.lua 文件中。

三、Iup的id扩展:
    这个在以前文章中有过介绍,仅举例说明 iup.button{title="ok",id="btn_id"},这样可以直接引用btn_id来表示此button,源码位于iup/iupid.lua中。

四、vswizard.dll文件
   主要提供了分析Template目录下模板文件的功能以及一些辅助函数供LUA使用。
   这是从VFC的WTL向导中移植过来,源码位于source/iup_vswizard目录下
   其中luabind目录为自己写的一个c++到lua的简单绑定。
 
五、绝对路径
   我发现在Lua中很难获取lua文件的绝对路径,最后我使用了在vswizard.dll中导出get_module_path 函数的办法以供lua模块使用,如果谁有更简便的方法望告之以加以改进。

六、多语言界面处理:
   Iup目前版本不支持UNICODE,但可以支持代码页。本向导的多语言处理采用了lua的表方式进行处理,在lua源文件中需要显示字符串的地方,使用ui("Sample string")的来取代"Sample string"。
   通过resource/build_lang.lua这个多语言生成工具,可以从lua源文件中直接提取ui("..."),并生成 lang_chs.lua供翻译使用,当修改了向导中的ui字符串后,重新运行build_lang.lua,取可重新提取ui("...")字符串,并 且不会影响到已经翻译好的字符串。
   我截取了resource/lang_chs.lua部分源代码,该文件通过build_lang.lua自动生成。
local lang  =  {}
lang[
" Project Name " =   " 项目名称 "
lang[
" Location " =   " 本地目录 "
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
作为现代C++最重要的特色技术,template正在各个传统领域攻城略地。从基本算法与数据结构,到正则表达式与XML解析,从高性能数学计算,到资源 的分配与管理,从网络分布式计算环境,到组件模型创建,从静态多态性的维度扩展,到设计模式的自动生成,神奇的template显示出其令人叹为观止的强 劲实力,如果不是有一个隐隐的痛处,template爱好者简直可以去狂欢了。 这个隐隐的痛处,就是在GUI编程领域。 现 有的大部分成熟GUI框架和工具库,其定型时间都在90年代早期,不管是因为什么原因,总之我们根本看不到template技术在这些环境中的任何重要运 用。无论是专有MFC和OWL,还是开源的wxWindow和Mozilla, 以至于是专有还是开源都说不清楚的Qt,它们在其他方面有着诸多不同,偏偏倒是在对待模板技术上空前一致:严格限制在底层的数据结构领域内,抵制模板技术 流入GUI主体结构。最过分的wxWindow和Mozilla,在代码编写规范里严厉禁止使用1990年之后发展出来的任何C++特性,模板、异常、多 继承、STL等等,均在黑名单上。诸位有兴趣,不妨去看看,那与其说是一份C++代码编写规范,倒不如说是对C++现代特性在GUI领域应用的一份不公正 的判决书。 难道模板技术真的在GUI领域无用武之地吗? WTL给出了一个响亮的回答。 WTL是微软 ATL开发组成员Nenad Stefanovic先生在ATL Windowing机制上发展起来的一整套GUI框架,运用template技术组织和创建GUI对象,构筑了精致的面向对象框架(没错,在这里 object oriented与template达成了精致的融合)。虽然没有获得微软的官方支持,虽然其使用者人数很少,但是确实是“用过的都说好”,有位微软 MVP人士甚至说,这是微软有史以来推出的最优秀的一个framework。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值