我的毕业论文

来源:互联网 发布:哈尔滨程序员工资待遇 编辑:程序博客网 时间:2024/04/28 23:32
2008年06月21日 星期六 下午 05:12
  经过很长时间的拼搏,终于把自己的想法变成了现实。自己的输入法已经测试使用了一月时间了,并且利用它完成了整篇毕业设计论文的全部输入。总算是实现了自己的一个目标,我知道这是我渴盼已久的,但此时的心里只是淡淡的坦然,成功似乎没有给我带来多大的喜悦。如果可以回到最初选择做输入法的时候,我宁愿选择放弃,因为这一个过程确实太难了。人生不可能走回头路就像时光不能倒流,没有办法选择自己曾经走过的路,但是有必要把自己硬着头皮做过的事情总结一下。    输入法说白了是windows系统的一个插件,一个dll文件而已。微软为解决远东国家大字符集的输入问题而在操作系统中设计了一个IME,IME是在Windows平台上使用的标准的输入法接口规范。它实质是一个DLL,Windows为这个DLL定义一系列的接口,不同的接口实现指定的功能。程序员在编写输入法程序时必须在遵守这些接口规范的情况下,实现这些接口并导出就可以作为输入法使用。    在输入法的发展过程中,产生了两种类型:外挂式及IME模式的。外挂式比较简单,就是一个exe文件,通过模拟一些Windows输入消息来给当前处于活动状态的编辑窗口输入文字,一个显著的优点是输入法只要启动一次,就可以在所有进程中使用;但缺点不不容忽视,首先实现起来也不容易,一个更大的不足是兼容性不够好,通常一个Windows版本需要一人对应的输入法版本,此外这类输入法为了能够截获用户输入,需要挂接键盘钩子,容易造成系统不稳定或者效率不高。总的来说,IME模式的输入法比较稳定可靠,而外挂的输入法相对比较容易实现。    两种模式的输入法基本的原理都是用户输入,查询码表,显示候选。但是IME模式下必须实现19个框架函数之间的通信和接口,即便是有的函数没有做任何事情,但是它的空壳也得写在程序中。ImeProcessKey和ImeToAsciiEx两个函数是最重要的两个函数,也是输入功能的核心。    最后需要说明一点的就是输入法窗口,输入法的UI窗口是一个实际存在但我们又看不见的窗口,我们看见的输入法状态栏、编码框和候选框是UI窗口的子窗口,它是UI窗口可见的部分。    总的来说,输入法在技术实现上确实比较难但是它并不神秘。之所以这样说一方面是因为直到现在我也不能完全理解IME模式下的消息回传机制,并不神秘是因为只要你看上一些资料和输入法源码,就可以明白它大概是个什么框架。只要你再付出一定的努力,所有的困难也都有解决的办法。