标题：张文伟
简历
中文名：    张文伟
英文名：    Rayman Zhang
祖 籍：      广东
民 族：     汉
学 历：     本科毕业于华南理工大学应用数学，研究生毕业于华南理工大学计算机软件学院
婚姻状况：已婚
出生年月：1971年
MDict(一款用于WinCE PDA的支持多语言的电子辞典电子辞典)的作者。
MDict软件是一款由中国的Rayman Zhang开发的、用于查看各种mdx格式词典文件的阅读器（mdx格式词典
文件又被称为“词库”；mdx为此类文件的扩展名）。电脑、手机需要运行相应的MDict软件。目前，
MDict软件最新正式版为：MDict for PC 1.0 Beta2【适用于电脑，Windows XP或Vista系统】；MDict 
3.0 正式版【适用于手机，有自动、手动两种安装包；又细分为多种适用于不同手机操作系统的MDict软件
】。 PPC、HPC、Smartphone操作系统的智能手机可以运行该软件，而Symbian系统或其它操作系统的智能
手机则暂无法运行它。
相关访谈
1. 是什么使你产生制作mdict的灵感的？ 
当时意外得到一台Ipaq 3760, 觉得没有什么好用的词典。想起以前在PC上的一个比较不错的字典，希望在上面用。顺便学习一下PPC上的开发。
2. 从构思到制作出最初的版本一共花了多少时间？（以小时计）
大概80个小时吧。
3.这个软件的核心部分是什么？
核心是词库文件解析引擎
4. 制作过程中使用的是什么语言？
C++
5. 制作过程中遇到了一些什么样的困难？
同时支持多个平台(PPC/SP/HPC)和支持多个操作系统版本令测试十分麻烦。
6. mdcit可以支持最大4G(具体我不清楚是多大)的的文件，以及在模糊查询的时候能快速处理数据，这些是怎么做到的？使用了什么特殊的处理语言或者算法没有？
现在理论上词库格式是支持2^64(64位处理)的文件大小, 但实际上在手持设备上只能支持最大4G(操作系统的限制)
词库格式在设计时就考虑到手持设备的内存有限，所以在设计索引格式时进行了优化。使得日常查找速度能够比较快。但目前模糊查找和全文查找的效率不行，有待优化。
7. 关键字模糊查询时处理数据的速度达到了什么样的标准？（比如每秒多少查询多少条词条）全文模糊查询时处理数据的速度达到了什么样的标准？
见6.
8. 第一个版本用户的反应如何？  
第一个版本出现时就是内容带颜色区分，阅读时比较舒服，加上使用的字典资源比较好，所以受到了好评。也促使我进一步开发下去。
9. 有没有商业化的想法，如果商业化，打算如何运作？
有，但目前还没有详细的计划。
10. 国外用户用得多不多？收到哪些国外的用户反馈？
国外用户也很多，时不时收到国外用户的咨询。好像韩国的用户不少。
（提问者为一个非常热爱mdict软件的网友。回答者为mdict作者张文伟先生。）
mdict 版本开发历史
MDict 3.0 RC2
1) 指划模式下不再支持选择文字
2) 部分改进设置了简繁体转换时，带有简繁体混合的词典内链接跳转问题
3) 优化重定向链接比较多时词典的全文查找速度
4) 改变发音库的设置方法，选项设置里的语音库路径设置为设置语音库的所在目录(默认为MDict\AudioLib)，只需要将.mdd文件(可以有多个，使用时按文件名顺序从小到大优先)放入该目录，程序会自动全部打开。
5) 将大图标模式下的上下词条按钮改为历史上下一条
6) 增加参考词典模式(将词典放入MDict下的ReferenceLib目录下，显示的时候选择view->Show Reference的话，就会在显示每个条目的时候同时查找参考词典，如果有一样的条目就同时显示参考词典的内容)
MDict 3.0 RC1
1) 可以选择使用大图标，方便手指操作(PPC/HPC版)
2) 可以自动查找高亮文字(PC/PPC/HPC版)
3) 可以在正文窗口内选择内容进行发音
4) PC版的任务栏图标增加右键菜单
5) PC版可以自定义热键组合
6) PC版通过热键激活时会自动查找剪贴版中的内容
7) 改进指划的识别
8) 改进发音库查找方式，适应词组发音
9) 程序包自带Doulos SIL字体用于显示音标
10) 增加波兰文翻译
11) 支持内部重定向链接
12) 增加字体控制
13) 解决输入栏亚洲语言无法显示的问题
14) 改正部分文字没有汉化
15) Smartphone 2003下词库管理无法退出
16) 改正联合词组模式下词条内容重复显示的问题
17) 解决程序在显示对话框时如果被放到后台，通过再次运行的方式激活程序会无法操作原有对话框
内部重定向(内容链接):
1) 当两个关键字所指向的内容是一样的时候，可以采取重定向的方式来达到"链接"的效果。内部重定向的格式为:
@@@LINK=关键字
例如color 和 colour 都指向相同的内容，制作词典时可以正常编写color词条，但对于colour词条，可以写成:
colour
@@@LINK=color
</>
当显示colour条目的内容时，程序会自动找到color的内容进行显示，链接是可以多重嵌套的。
2)当重复的内容是数据文件时，同样可以采用内部重定向的方式解决冗余问题，只是改为将链接文件的内容设置为:
@@@LINK=目标文件名全路径 (注意编码方式必须是UTF-16)
例如abc.spx和123.spx的内容是一样的时候，123.spx的内容可以设置为:
@@@LINK=\abc.spx
已知问题:
*如果联合模式下，如果词典的编码方式不是Unicode且该语言的unicode与非unicode编码方式的字母排序顺序不一致时，
会导致该词典的词在词典列表中不能正常显示。(通常表现为输入某个字后，在单词列表里只出现有限几个条目).最常见
的是亚洲语言会出现此类问题.
* PC版词库管理对话框字体难看
* 如果字典本身制作时已经指定了字体，则字体设置对其无效
MDict 3.0 Beta2
1) 联合词典方式下，一个词典如果有多个相同词条，在“回车”查找时只能显示第一条，但点击列表时就能显示多个？
2) 联合模式下词典显示顺序不正确
3) 词典名用书名号扩起来并去掉.mdx。
4) 调整PPC版菜单
5) 搜索时自动将高亮(选择)了的文字或者剪贴板内容作为搜索文本
6）全文搜索支持用""表示完全匹配，例如可以: "how to" do
7) 解决无法使用超过2G的文件的问题
8) 解决PC版在IE6下某些链接方式的图片看不到的问题
9) 字体颜色及背景色的菜单没有根据当前选择进行标示
10) 解决WM5版本下，词库管理对话框的右上角OK按钮无效
11) 增加当前词在词汇列表位置的设置项
12) 内置指划滚屏支持
13) PPC/HPC/PC版上下键改为翻页功能
14) PPC版在没有使用WM5软键菜单时，左软键可以用来发音
MDict 3.0 Beta1
1) 支持多词库同时查询!
2) 增加Copy all to Clipboard功能，将当前显示的所有内容都拷贝到剪贴板
3) 解决非unicode编码的词典中进行全文搜索时，可能会返回不正确的结果。
4) 自动使用程序所在目录下的Library目录内的Sound.mdd文件作为语音库(如果该文件存在的话)。
5) 解决PC版词库管理中的CopyTo/MoveTo按钮不可用的问题
6) 取消支持外部css文件支持
7) 增加"自动调整最后使用的词典在词库列表的次序"的选项
8) 增加选项设置词库菜单中使用字母还是数字作为快捷键
9) 调整菜单结构
10) 增加背景/文字颜色设置
11）一些小的bugfix
说明:
1. 多词典同时查询的功能是通过将分组设置为"联合"来实现的。即在词库管理内通过导入或者自建分组，然后选择"设置为联合"。被设置为联合的分组在词库列表菜单中就会显示为和普通词典一样可以选择。
由于同时查询多个词典，打开或者查找结果都会相对慢一些，所以同一个分组内不要放太多词典。另外联合方式的词典暂时不能进行关键字模糊查询和全文查找，词条列表也不能向上滚动（只可以向下)。
2. 如果设置了背景色，内容显示时可能会有屏幕闪动，暂时无法解决。
MDict 3.0 Alpha 4
1)解决程序放到后台后，如果再次运行，只显示菜单条的bug
2)解决如果打开词典失败时会退出程序的bug
3)改进词库管理, 支持嵌套分组。
4)当词库列表为空时，启动程序时自动在程序所在目录下的"Library"内搜索和导入词库。
5)改进链接跳转时输入栏和单词列表的更新滞后问题
6)解决链接跳转时输入栏没有进行相应的简繁体转换
7)补充繁体翻译
8)解决PC版某些情况下图片无法显示及出错的问题。(中文维基百科的首页图片可能无法显示，因为其html编写有问题)
9)某些Unicode字符无法在列表框中的显示
MDict 3.0 Alpha 3
1) 恢复把当前词条设置为单词列表的第一条
2) 解决横屏时大小没有进行相应调整的bug
3) PC版支持页内跳转及图片显示，外部语音库发音(未支持TTS引擎)以及多语言界面等
4) 关键字模糊查找在没有使用通配符时，默认为部分匹配(前后添加*号)
5) PPC/HPC版也支持SP版的键盘数字快捷键。
6) 解决部分英文没有翻译
7) 全文搜索支持多词查询(用空格分隔单词)
8) 增强带键盘PPC/SP设备的支持
9) 增加选项控制是否在分屏模式下自动查找（解决某些语种在此模式下的问题)
10) 增加选项控制是否自动控制输入栏(方便使用键盘输入的设备)
11) 增加使用者信息菜单，用于显示设备ID
12) 增加词库管理功能
MDict 3.0 Alpha 2
1) 解决Alpha 1中图片无法显示的bug
2) 解决非Unicode词典的全文搜索问题
3) 解决搜索相关的菜单错误
4) 大幅提高新版词库的加载速度
MDict 3.0 Alpha 1
1. 解决一些小bug
2. 支持新版词典格式
3. 支持关键字模糊查找
4. 支持全文查找
MDict 2.5
新增功能:
* 支持全局语音库发音
* 界面多语言支持(在Tools->Options里设置)
* 支持WM5 方式的软键菜单
* 增强显示在线取词内容的浮动窗口功能 (除了按钮少了几个，其他功能与主窗口一致，PPC版)
* 支持在mdd中引用css文件. (将.css文件放入.mdd文件中，类似引用图片的方式。仅在WM2005以上系统有效! 请慎用)
* 支持在词条中引用语音. (在词典源文件中使用<a href="sound://filename.spx">play</a>这样形式的标记) 
* 改进取词功能
* 保存查询的内容使用UTF8编码(保存的.html文件可以直接在PPC上打开查看了)
* 改进大小写转换算法(越南语存在大小写问题)
* 一些bugfix
MDict 2.4
新增功能:
* 界面美化
* 增加使用手册
* 单词找不到的时候自动切换到输入状态
* 当在线取词辞典与主辞典不是同一个辞典时，在主窗口内取词时，采用浮动窗口
* 支持带qwerty键盘Smartphone可以直接输入时切换到输入状态
* 在分屏显示模式下，输入时自动显示辞典内容
* 当输入栏为空时可以显示所有的词条供选择
* 提高取词成功率
* 支持页内跳转 "entry://#abc"
* 支持播放声音(html 的BGSOUND tag)
* 跳转链接中如果含有转义符"%"的话，对链接不进行简繁体转换(用来解决辞典中同时存在简繁体时，进行简繁体转换后跳转不正常)
* 内部显示逻辑优化
解决的问题:
* 解决Smartphone版本在按backspace的时候会清空输入栏内容的问题
* 解决按确认键时的响声
* 解决横屏时排版不正确
* 修正某些情况下链接跳转不正常
* 修正在启动时会先显示打开词库的选择信息后再出欢迎信息的问题。
MDict 2.3
* 解决带URL encode的链接不能正常访问。
* PC 版支持Ctrl-C, Ctrl-V
* 解决UTF-16编码的辞典的链接跳转问题
* 增加非中文系统中文换行解决方案
* 解决二次运行时会错误释放资源
* 增加对从右到左阅读的语言的支持(需要新版MdxBuilder进行词典制作配合)
* 解决部分平台上输入栏字母显示不完整的问题
* 解决Smartphone输入后确认会"叮"响
* 增加释放字体资源选项。
* 解决在查询某些单词时列表框中无单词列表
* 解决图片文件名中如果包含有'0'的无法显示
* Enter在输入内容为空的时候可以切换到内容显示框
* 解决HPC版本的选项设置对话框缺少"Show Keyword"选项
* 显示相关的设置将会跟随当前词典进行保存, 切换词典时会自动恢复相关的显示设置, 并改写Option对话框以配合。
* SP版按home再按back返回后，确认键可以使输入焦点切换到内容解释框
* 修改历史记录的记录方式，采用类似浏览器保留历史访问记录的模式
* 重新编排smartphone版的菜单
* Smartphone版增加Save Lookup Content功能
* 解决Smartphone版按Back的时候会导致输入框内容清空
Know Bugs: 
Smartphone版：
* 无法保留最近的输入法(切换到输入框后，总是变成EN输入法, 该问题仅出现于部分输入法)。
MDict 2.2
新功能: 
a) 方便使用键盘输入的设备，察看条目解释时，输入任意内容都会自动切换到输入窗口(HPC/PPC版)
b) 解除只能同时使用12个词典的限制
c) 支持所有编码方式的词典简繁体转换(原来仅支持BIG5/GBK方式编码的词典)
d) 支持命令加载辞典
e) 加-n参数启动新实例
f) 显示词典名称时去掉 .mdx后缀
g) 支持在词典中嵌入图片。
h) 浮动窗口支持输入关键字查询
j) 修改Smartphone版本的方向键控制：
查询单词时: 左右方向键可以控制输入框的光标移动，上下方向键可以在被选列表框中移动，确认键进行选择
察看单词内容时: 方向键控制窗口的上下左右滚动，并解决某些连接无法选择的问题。
键盘快捷键: 
1,3: 历史查询记录的上一条/下一条记录 
2,8: 当解释的内容超过一屏的时候上一屏/下一屏(PageUp/PageDown) 
4,6: 上一条/下一条词条 
5: 选择内容中的下一个链接(相当于Tab键) 
7,9: 跳至解释的最开始(Home)/跳至解释的最后(End) 
解决的问题:
a) 解决在WM5下词典内无法取词的问题
b) 解决竖屏<->横屏切换时，显示窗口不会自动根据屏幕进行调整的问题
c) 为避免和其他程序冲突，缺省情况下关闭热键取词, 需要主动在Option菜单中设置才可以使用按钮取词功能。
d) 双击浮动解释窗口的顶端横条时，即使无法取词也会切换到主窗口.
e) SP版将会根据精度计算输入框的高度，避免QVGA设备模式下输入窗口的字看不清
MDict 2.1.3
a) 解决程序在某些机器上启动时会挂死的问题
b) 解决程序退出后再运行时，自动加载的字体失效
c) 解决输入框的单词无法拷贝的问题
d) 解决ClearType和字体大小设置对浮动解释窗口无效的问题
e) 在线取词的词库如果设置了不正确的辞典,辞典文件名设置将会被自动清空
f) 调整选项对话框的排版
g) 浮动解释框增加当前显示的条目名称(可以通过选项对话框设置关闭)
h) 切换辞典时保存原输入框中的内容
MDict 2.1.2
a) Fix for Mio 8380/8390(Smartphone version)
MDict 2.1.1
a) 修正Smartphone版本中About菜单无效
b) 显示辞典内容时将"\n"转换为回车换行(主要针对一些从Sugardict转换过来的辞典)
c) 修正词典中的连接如果含有URL转义符时失效的问题。
MDict 2.1.0
a) 修正查询记录中的换行问题
b) 切换词典时保留单词
c) Option Dialog使用不同的大小，以适应HPC的使用
d) 解决在线取词内存泄露问题
e) 词典文件在菜单中显示时仅显示文件名
f) 可以输入:About 察看词典文件本身的欢迎画面
g) 词典文件只有在第一次打开时显示欢迎页面，以后在菜单中切换词典可以保留原来输入的单词
h) 保存的最大词典数改为12个
i) 可以更改显示字体大小 (HPC版本无效)
j) 可以设置显示时是否使用ClearType (HPC版本无效)
k) 增加搜索所有mdx文件的功能
l) 解决WM2003 SE系统下解释窗口内无法使用取词按钮/COPY按钮失效的问题
m) 支持 MS Smartphone 2002
n) 自动保存所有显示相关的设置
o) 自动加载MDict\Fonts目录下的所有.ttf字体.
p) 将浮动窗口设置为最顶窗口，方便在其它全屏显示的软件里使用浮动窗口显示
q) 支持WM2003 VGA设备
MDict 2.0 Final
a) 解决Copy按钮不起作用的问题
b) 解决间繁体设置无效的问题
c) 解决取词按钮位置无法保存的问题
d) 切换词典后自动处于输入状态
e) 解决取词查询后列表框内容和查询的单词不同步的问题
f) 增加是否自动保存历史纪录的选项
MDict 2.0 Beta2
a) Fix简繁体转换的问题
b) Fix取词按钮位置不会保存的问题
c) 解决MDict的配置会存放在根目录的问题(应该存放在MDict所在目录)
d) 如果程序已经运行，再次运行本程序时会将其设置为当前窗口
MDict 2.0 Beta1
a) 重构程序以便程序可以容易地移植到smartphone上或PC Windows, 并减少内存的占用
b) 使用mdict.cfg文件来保存设置，不再使用注册表。方便重装。
c) 取词按钮的位置在退出时会自动保存
d) 自动保存查询的历史纪录
e) 增加查询上.下一个词条的按钮
f) 在输入单词时，可用上下箭头滚动列表框，回车键则可以显示当前选择的提条的解释
g) 在显示解释内容时(单词列表隐藏时), 上下箭头可以上下滚动解释内容，左右箭头显示上/下一条词条的解释
h) 改进取词按钮的实现方式，希望能减少与Wisbar之类的程序的冲突.
MDict 1.3.1-1.3.2
a) 解决长按取词按钮会令系统挂起的bug.
b) 使用上/下一个历史查询记录按钮时, 不再弹出单词列表.
1.3-1.31
a) 解决1.3版的MDict无法正常查询UTF-8编码的辞典的问题
b) 调整Option对话框的排版,避免输入法的输入栏遮住在线取词的文件路径输入框
MDict 1.3Beta3-1.3Beta4
a) 无法正常打开的文件将从最近使用文件列表中删除
b) 修正UTF-8/UTF-16编码的字典无法使用的bug
c) 最近使用的字典记录数增加到8个
MDict 1.3Beta2-1.3Beta3
a) 用MdxConvert 1.3Beta2转的21世纪辞典有些汉语词语没英语内容, 
b) 用MdxConvert 1.3Beta2转的辞典有些汉语词汇无法查到(例如"歧视")
c) MdxConvert允许选择是否转换SugarDict辞典里的音标
d) 改进mdx文件结构, 加快加载速度.(不再支持1.3beta2及以前版本转换出来的数据)
MDict 1.3beta1-1.3beta2
a) 优化最近使用文件的显示
b) 支持滚轮浏览单词列表, 回车键在查询和解释方式间切换
c) MdxConvert支持Sugardict的音标, 转换后除可以显示音标外, 还有可以颜色区分内容
d) fix 21dict转换时的bug
e) 去除过滤模式按钮和辞典数据所在目录选项
MDict 1.21-1.3beta1
a) 提供Open菜单,可以方便地打开辞典(辞典文件需要放在\My Document\下)
b) 记录最近使用过的4个文件
c) 不再直接支持21Dict的数据文件(MdxConvert可以将21dict的数据转换成mdx格式)
d) 在线取词的词库可以和主词库不(即当前打开的词库)一样 (需要在Option里设置, 如果希望和主词库一样,则不要设置,留空即可,否则会消耗内存)
e) 过滤模式暂时无效, 数据所在暂时目录无效
MDict 1.2-1.21
a) Bug fix: 如果自定义词典里含有全空的关键词,将无法初始化.
MDict 1.2beta3 -1.2
1. 单词查找不到时，自动查找最接近的词。
MDict 1.2beta2 -1.2beta3
a) 增加UTF8支持
b) 改进辞典结构
c) bug fix
MDict 1.2beta1 -1.2beta2
1.Bug fix:
a)在HPC版本里，汉译英时英文的连接跳转不起作用
b)HPC版里的Copy按钮不起作用，但可以用取词按钮代替。
2.支持Unicode编码方式的辞典。
3.支持MDict紧凑型html格式
4.不再支持MDict 普通的Text格式
5.一些内部改进
MDict 1.1.2 -1.2beta1
1.支持新的自定义词典格式，用户可以自行转换/制作词典。
2.Bug fix:
a) 在HPC版本下有时候左边的单词列表框会消失
b) 当词典文件放在根目录下时，或者输入的数据所在目录名称最后含有"\"字符时词典数据初始化失败
c) 某些单词的查询会导致程序失败，甚至退出.
MDict 1.1.1 -1.1.2
1. Bug fix
2. 优化显示和查询
3. 增加在线查询浮动显示窗口
MDict 1.1 -1.1.1
Fix 一些小bug
MDict 1.0 - 1.1
合并mbar的功能，增加在线取词图标。
MDict 1.0 RC1 - 1.0 RC2
改进按钮取词的方法
MDict 0.95-1.0 RC1(2002-6-2)
1. 改进按钮取词的方法!
2. 词汇查找不到时提示
MDict 0.92-0.95 (2002-5-29)
1. 增加清除当前词语的按钮
2. 增加自定义取词按钮的功能.
3. 取消style.txt, appcmd.ini
4. 码表转换文件 *.tbl可以放在主程序(MDict.exe)所在目录或者辞典数据所在目录.
MDict 0.91-0.92 (2002-5-26)
1. 改写辞典内核, 希望能彻底解决中文问题
2. 一些小的bug fix.
MDict 0.9-0.91 (2002-5-25)
主要是解决PPC2002下使用外挂中文系统时无法查询中文的Bug!
MDict 0.87->0.9 (2002-05-22)
1. 汉->英翻译!
2. 界面改善
3. 可以保存查询过得单词历史纪录(选择Tools\Save Lookup History将会在数据目录里生成history.txt)
4. 取消Option\Encoding里的Unicode设置项. 
MDict 0.85->0.87 (2002-05-17)
1. 在不同操作状态时，自动显示/隐藏软键盘
2. 在满屏模式下显示自动显示/隐藏单词列表
3. 取消在分屏模式下的滚动条，改为翻页按钮
4. 增加Copy按钮
5. 其它一些细小的易用性改进
MDict 0.8->0.85 (2002-04-30)
1. 改善取词能力
2. 支持21Dict的4.1 CDROM版数据(不支持Filter模式），支持ETDict字典数据
3. 单词列表可以滚动
4. 可以将当前的翻译存储成文件(例如在查Test的时候，选择Tools\Save Result就会在字典数据所在目录生成test.htm文件)
5. 改进按钮状态显示
MDict 0.75->0.8
1. 有限度支持"按钮选词"功能, Thanks to Tim for the idea(仅在PPC 2002中测试过)
2. 增加"粘贴"支持
3. 字典数据确省假设与MDict.exe同一目录。
4. 简化Style.txt,方便字体和颜色设定。
5. Fix Command bar Tooltips
MDict 0.7->0.75
1. 可以利用金山词霸的音标字体进行音标显示（KK音标部分可能还有问题）
2. 可以选择显示或不显示例句
3. 可以用浏览方式选择字典目录（只能用来选择本机或存储卡内Document下面的目录，其他目录必须手工填）
4. Fix了一些小bug.
5. Pocket PC 2002下可以复制词典的解释(PPC2002机器请使用MDict-ARM-PPC2002.exe)
MDict 0.7alpha -> 0.7
1. 提供ARM, MIPS, SH3版本（仅在ARM平台上测试过) 
2. 支持多种内码显示方式( Unicode, GB2312, BIG5 ) 
3. 改进对PPC 2000的支持 
4. 一些操作上的易用性改进 
5. 版本0.7Alpha ->0.7 :)