[发明专利]基于Windows OS与Linux OS的梵音藏文输入法无效
申请号: | 200710097782.5 | 申请日: | 2007-05-08 |
公开(公告)号: | CN101303644A | 公开(公告)日: | 2008-11-12 |
发明(设计)人: | 于洪志;马宁;戴玉刚;曹晖;赵颖;何向真;窦嵘 | 申请(专利权)人: | 西北民族大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F3/023 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 730030甘*** | 国省代码: | 甘肃;62 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本项发明内容为基于Windows OS与Linux OS的梵音藏文输入法,属于中文信息领域。现代藏文输入法编码涵盖藏文编码字符基本集及扩充集A,共1730个字符。本发明实现跨Windows及Linux操作系统平台藏文梵音输入。对跨平台概念以及输入法接口模块概念定义。在Windows OS下,输入法文件是动态链接库程序,在Linux OS的X-Window系统下,遵循XIM协议在输入法服务器上实现,分析Windows OS及Linux OS间差异,采用软件移植、第三方虚拟机工具Wine、使用操作系统抽象层等,实现跨平台梵音藏文输入法的统一接口模块,本发明支持藏文古籍文献的信息化处理。 | ||
搜索关键词: | 基于 windows os linux 梵音 藏文 输入法 | ||
【主权项】:
1.本发明与最接近的现有技术共有的必要技术特征国内外有Windows OS的藏文输入法和Linux OS藏文输入法。但是,藏文输入法不能在这两种不同类型的操作系统上安装并运行。基于Windows OS与Linux OS的梵音藏文输入法特征是:跨平台梵音藏文输入法,即支持Linux与Windows两种操作系统平台的梵音藏文输入法。本发明支持Windows OS环境或者Linux OS环境下,藏文古籍文献信息处理。跨这两种操作系统必须寻找一个输入法接口模块以使该输入法系统可以在这两种不同类型的操作平台上安装并运行。1.1输入法接口模块的定义Windows与Linux同属于系统软件,它们对输入法的支持采用的是两种不同的输入机制,输入法接口模块建立于两种不同的输入机制之上,它不会去修改某一操作系统的原有输入机制。在发生一个键盘(或其它非键盘输入)事件后,它可以智能的对这一事件进行处理,包括识别当前软件运行的操作系统环境,是否输入以及采用哪种输入机制来实现藏文字的输入。1.2跨平台藏文梵音输入法接口模块实现在编写跨平台藏文梵音输入法接口模块时,使用条件编译,使得在不同平台下进行不同的编译,它可以保留Windows代码,也允许其兼容Linux操作系统的区别。1).尽量不要改变原有动态库头文件的顺序。通常在C/C++语言中,头文件的顺序有相当的关系。另外虽然C/C++语言区分大小写,但在包含头文件时,Linux必须与头文件的大小写相同,因为ext2文件系统对文件名是大小写敏感,否则不能正确编译,而在Windows下面,头文件大小写可以正确编译。2).不同系统独有的头文件。在Windows系统中,通常会包括windows.h头文件,如果调用底层的通信函数,则会包含winsock.h头文件。因此在移植到Linux系统时,要注释掉这些Windows系统独有的头文件以及一些windows系统的常量定义说明,增加Linux都底层通信的支持的头文件等。3).数据类型。VC++具有许多独有的数据类型,如_int16,_int32,TRUE,SOCKET等,gcc编译器不支持它们。通常做法是需要将windows.h和basetypes.h中对这些数据进行定义的语句复制到一个头文件中,再在Linux中包含这个头文件。例如将套接字的类型为SOCKET改为int。4).关键字。VC++中具有许多标准C中所没有采用的关键字,如BOOL,BYTE,DWORD,_asm等,通常在为了移植方便,尽量不使用它们,如果实在无法避免可以采用#ifdef和#endif为LINUX和WINDOWS编写两个版本。5).函数原型的修改。通常如果采用标准的C/C++语言编写的动态库,基本上不用再重新编写函数,但对于系统调用函数,由于两种系统的区别,需要改变函数的调用方式等,如在Linux编制的网络通信动态库中,用close()函数代替windows操作系统下的closesocket()函数来关闭套接字。另外在Linux下没有文件句柄,要打开文件可用open和fopen函数,具体这两个函数的用法可参考文献[2]。6).makefile的编写。在windows下面通常由VC++编译器来负责调试,但gcc需要自己动手编写makefile文件,也可以参照VC++生成的makefile文件。对于动态库移植,编译动态库时需要加入-shared选项。对于采用数学函数,如幂级数的程序,在调用动态库是,需要加入-1m。7).程序设计结构分析,对于移植它人编写的动态库程序,程序结构分析是必不可少的步骤,通常在动态库程序中,不会包含界面等操作,所以相对容易一些。8).在Linux中,对文件或目录的权限分为拥有者、群组、其它。所以在存取文件时,要注意对文件是读还是写操作,如果是对文件进行写操作,要注意修改文件或目录的权限,否则无法对文件进行写。9).指针的使用,定义一个指针只给它分配四个字节的内存,如果要对指针所指向的变量赋值,必须用malloc函数为它分配内存或不把它定义为指针而定义为变量即可,这点在linux下面比windows编译严格。同样结构不能在函数中传值,如果要在函数中进行结构传值,必须把函数中的结构定义为结构指针。10).路径标识符,在Linux下是“/”,在Windows下是“\”,注意windows和Linux的对动态库搜索路径的不同。11).为在Linux上一些不同的特性寻找等同的功能。使用条件编译来限定一些Windows特定的信息。例如,可在源文件中这样限定一些平台特定的代码:#if WindowslniFile.loadFromFile(‘c:\tibet.txt’);#elseif Linux lniFile.LoadFromFile(‘/home/name/tibet.txt’);#endif12).在所有的项目文件中寻找对路径名的引用,并根据下面情况进行适当修改。①Linux中的路径名使用左斜线/作为定界符(如/usr/lib),并且不同的文件可能位于Linux系统的不同路径中。使用PathDelinm(位于SysUtils中)常量来确定与当前系统相适应的路径定界符,并为Linux中的任何文件确定正确的路径。②修改对驱动器(如C:\)字母的引用,可在路径字符串中判断第2个字符是否为冒号来寻找驱动器字母。使用DriveDelim常量(位于Sysutils中)来确定与当前系统相适应的驱动器表示术语。③在使用了多个路径的地方,将路径分隔符由分号(;)变为冒号(:)。使用PathSep常量{位于SysUtils中)来确定与当前系统相适应的路径分隔符。④由于在Linux中文件名是大小写相关的,因此要确保应用程序没有改变文件名的大小写。1.3梵音藏文输入法键盘布局根据键盘布局原理,将藏文字符按频率高低依次从键盘中排向下排上排、从中间键位向两面排列。藏文梵音输入法布局,以藏文书写规则为主,考虑键盘的常用习惯,在藏文键盘字母布局表中,合理设计了上加字、下加字、反字、基字及常用字符的位置。藏文数字到对应0-9的数字键;阿拉伯数字放置在0-9的上挡键上,三个上加字安排在p、[、]键上;下加字在r、R、t、T、y五个键位上;五个反字分别安排在的上挡键上;四个元音字母分别安排在e、u、i、o键位上;一个反元音字母安排在I键位上;分词符号和分句符号安排在j和J键位上。1.4梵音藏文字符输入在藏文字母与数字区键盘布局确定之后,按梵音藏文书写顺序确定输入码表。1.5梵音藏文输入法的编码梵音藏文输入法编码涵盖藏文编码基本集字符及藏文编码扩充集A,共1729个字符。由于本表在正文中显示太长,作为附图9予以说明。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北民族大学,未经西北民族大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200710097782.5/,转载请声明来源钻瓜专利网。
- 上一篇:并联式双室电饭锅内胆
- 下一篇:七色曲面胶印机印刷滚筒自动后退新工艺