[發(fā)明專利]基于Windows OS與Linux OS的梵音藏文輸入法無效
| 申請?zhí)枺?/td> | 200710097782.5 | 申請日: | 2007-05-08 |
| 公開(公告)號: | CN101303644A | 公開(公告)日: | 2008-11-12 |
| 發(fā)明(設(shè)計)人: | 于洪志;馬寧;戴玉剛;曹暉;趙穎;何向真;竇嶸 | 申請(專利權(quán))人: | 西北民族大學(xué) |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44;G06F3/023 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 730030甘*** | 國省代碼: | 甘肅;62 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 windows os linux 梵音 藏文 輸入法 | ||
1.本發(fā)明與最接近的現(xiàn)有技術(shù)共有的必要技術(shù)特征
國內(nèi)外有Windows?OS的藏文輸入法和Linux?OS藏文輸入法。但是,藏文輸入法不能在這兩種不同類型的操作系統(tǒng)上安裝并運(yùn)行。
基于Windows?OS與Linux?OS的梵音藏文輸入法特征是:跨平臺梵音藏文輸入法,即支持Linux與Windows兩種操作系統(tǒng)平臺的梵音藏文輸入法。
本發(fā)明支持Windows?OS環(huán)境或者Linux?OS環(huán)境下,藏文古籍文獻(xiàn)信息處理。跨這兩種操作系統(tǒng)必須尋找一個輸入法接口模塊以使該輸入法系統(tǒng)可以在這兩種不同類型的操作平臺上安裝并運(yùn)行。
1.1輸入法接口模塊的定義
Windows與Linux同屬于系統(tǒng)軟件,它們對輸入法的支持采用的是兩種不同的輸入機(jī)制,輸入法接口模塊建立于兩種不同的輸入機(jī)制之上,它不會去修改某一操作系統(tǒng)的原有輸入機(jī)制。在發(fā)生一個鍵盤(或其它非鍵盤輸入)事件后,它可以智能的對這一事件進(jìn)行處理,包括識別當(dāng)前軟件運(yùn)行的操作系統(tǒng)環(huán)境,是否輸入以及采用哪種輸入機(jī)制來實現(xiàn)藏文字的輸入。
1.2跨平臺藏文梵音輸入法接口模塊實現(xiàn)
在編寫跨平臺藏文梵音輸入法接口模塊時,使用條件編譯,使得在不同平臺下進(jìn)行不同的編譯,它可以保留Windows代碼,也允許其兼容Linux操作系統(tǒng)的區(qū)別。
1).盡量不要改變原有動態(tài)庫頭文件的順序。通常在C/C++語言中,頭文件的順序有相當(dāng)?shù)年P(guān)系。另外雖然C/C++語言區(qū)分大小寫,但在包含頭文件時,Linux必須與頭文件的大小寫相同,因為ext2文件系統(tǒng)對文件名是大小寫敏感,否則不能正確編譯,而在Windows下面,頭文件大小寫可以正確編譯。
2).不同系統(tǒng)獨(dú)有的頭文件。在Windows系統(tǒng)中,通常會包括windows.h頭文件,如果調(diào)用底層的通信函數(shù),則會包含winsock.h頭文件。因此在移植到Linux系統(tǒng)時,要注釋掉這些Windows系統(tǒng)獨(dú)有的頭文件以及一些windows系統(tǒng)的常量定義說明,增加Linux都底層通信的支持的頭文件等。
3).數(shù)據(jù)類型。VC++具有許多獨(dú)有的數(shù)據(jù)類型,如_int16,_int32,TRUE,SOCKET等,gcc編譯器不支持它們。通常做法是需要將windows.h和basetypes.h中對這些數(shù)據(jù)進(jìn)行定義的語句復(fù)制到一個頭文件中,再在Linux中包含這個頭文件。例如將套接字的類型為SOCKET改為int。
4).關(guān)鍵字。VC++中具有許多標(biāo)準(zhǔn)C中所沒有采用的關(guān)鍵字,如BOOL,BYTE,DWORD,_asm等,通常在為了移植方便,盡量不使用它們,如果實在無法避免可以采用#ifdef和#endif為LINUX和WINDOWS編寫兩個版本。
5).函數(shù)原型的修改。通常如果采用標(biāo)準(zhǔn)的C/C++語言編寫的動態(tài)庫,基本上不用再重新編寫函數(shù),但對于系統(tǒng)調(diào)用函數(shù),由于兩種系統(tǒng)的區(qū)別,需要改變函數(shù)的調(diào)用方式等,如在Linux編制的網(wǎng)絡(luò)通信動態(tài)庫中,用close()函數(shù)代替windows操作系統(tǒng)下的closesocket()函數(shù)來關(guān)閉套接字。另外在Linux下沒有文件句柄,要打開文件可用open和fopen函數(shù),具體這兩個函數(shù)的用法可參考文獻(xiàn)[2]。
6).makefile的編寫。在windows下面通常由VC++編譯器來負(fù)責(zé)調(diào)試,但gcc需要自己動手編寫makefile文件,也可以參照VC++生成的makefile文件。對于動態(tài)庫移植,編譯動態(tài)庫時需要加入-shared選項。對于采用數(shù)學(xué)函數(shù),如冪級數(shù)的程序,在調(diào)用動態(tài)庫是,需要加入-1m。
7).程序設(shè)計結(jié)構(gòu)分析,對于移植它人編寫的動態(tài)庫程序,程序結(jié)構(gòu)分析是必不可少的步驟,通常在動態(tài)庫程序中,不會包含界面等操作,所以相對容易一些。
8).在Linux中,對文件或目錄的權(quán)限分為擁有者、群組、其它。所以在存取文件時,要注意對文件是讀還是寫操作,如果是對文件進(jìn)行寫操作,要注意修改文件或目錄的權(quán)限,否則無法對文件進(jìn)行寫。
9).指針的使用,定義一個指針只給它分配四個字節(jié)的內(nèi)存,如果要對指針?biāo)赶虻淖兞抠x值,必須用malloc函數(shù)為它分配內(nèi)存或不把它定義為指針而定義為變量即可,這點(diǎn)在linux下面比windows編譯嚴(yán)格。同樣結(jié)構(gòu)不能在函數(shù)中傳值,如果要在函數(shù)中進(jìn)行結(jié)構(gòu)傳值,必須把函數(shù)中的結(jié)構(gòu)定義為結(jié)構(gòu)指針。
10).路徑標(biāo)識符,在Linux下是“/”,在Windows下是“/”,注意windows和Linux的對動態(tài)庫搜索路徑的不同。
11).為在Linux上一些不同的特性尋找等同的功能。使用條件編譯來限定一些Windows特定的信息。
例如,可在源文件中這樣限定一些平臺特定的代碼:
#if?Windows
lniFile.loadFromFile(‘c:/tibet.txt’);
#elseif?Linux
????lniFile.LoadFromFile(‘/home/name/tibet.txt’);
#endif
12).在所有的項目文件中尋找對路徑名的引用,并根據(jù)下面情況進(jìn)行適當(dāng)修改。
①Linux中的路徑名使用左斜線/作為定界符(如/usr/lib),并且不同的文件可能位于Linux系統(tǒng)的不同路徑中。使用PathDelinm(位于SysUtils中)常量來確定與當(dāng)前系統(tǒng)相適應(yīng)的路徑定界符,并為Linux中的任何文件確定正確的路徑。
②修改對驅(qū)動器(如C:/)字母的引用,可在路徑字符串中判斷第2個字符是否為冒號來尋找驅(qū)動器字母。使用DriveDelim常量(位于Sysutils中)來確定與當(dāng)前系統(tǒng)相適應(yīng)的驅(qū)動器表示術(shù)語。
③在使用了多個路徑的地方,將路徑分隔符由分號(;)變?yōu)槊疤?:)。使用PathSep常量{位于SysUtils中)來確定與當(dāng)前系統(tǒng)相適應(yīng)的路徑分隔符。
④由于在Linux中文件名是大小寫相關(guān)的,因此要確保應(yīng)用程序沒有改變文件名的大小寫。
1.3梵音藏文輸入法鍵盤布局
根據(jù)鍵盤布局原理,將藏文字符按頻率高低依次從鍵盤中排向下排上排、從中間鍵位向兩面排列。
藏文梵音輸入法布局,以藏文書寫規(guī)則為主,考慮鍵盤的常用習(xí)慣,在藏文鍵盤字母布局表中,合理設(shè)計了上加字、下加字、反字、基字及常用字符的位置。藏文數(shù)字到對應(yīng)0-9的數(shù)字鍵;阿拉伯?dāng)?shù)字放置在0-9的上擋鍵上,三個上加字安排在p、[、]鍵上;下加字在r、R、t、T、y五個鍵位上;五個反字分別安排在的上擋鍵上;四個元音字母分別安排在e、u、i、o鍵位上;一個反元音字母安排在I鍵位上;分詞符號和分句符號安排在j和J鍵位上。
1.4梵音藏文字符輸入
在藏文字母與數(shù)字區(qū)鍵盤布局確定之后,按梵音藏文書寫順序確定輸入碼表。
1.5梵音藏文輸入法的編碼
梵音藏文輸入法編碼涵蓋藏文編碼基本集字符及藏文編碼擴(kuò)充集A,共1729個字符。
由于本表在正文中顯示太長,作為附圖9予以說明。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于西北民族大學(xué),未經(jīng)西北民族大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200710097782.5/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 檢測Windows系統(tǒng)已知漏洞的方法和系統(tǒng)
- 一種對主機(jī)進(jìn)行管控的方法及系統(tǒng)
- 一種基于windows服務(wù)控制器的系統(tǒng)自動運(yùn)行方法
- 處理windows update彈窗出現(xiàn)的方法和系統(tǒng)
- 檢測系統(tǒng)中已安裝應(yīng)用的方法和客戶端
- 一種Windows Phone手機(jī)數(shù)據(jù)的鏡像方法
- 在Windows下對Linux系統(tǒng)中無線通訊模塊調(diào)試數(shù)據(jù)抓取方法和系統(tǒng)
- 一種實現(xiàn)Windows系統(tǒng)自動化安裝的系統(tǒng)及方法
- 一種基于Windows To Go的增強(qiáng)方法及系統(tǒng)
- 一種批量控制windows快速部署的工具及方法
- LINUX內(nèi)核動態(tài)加載方法
- 一種Linux嵌入式系統(tǒng)的安全啟動方法
- 一種加快嵌入式Linux系統(tǒng)啟動的方法
- Linux文件系統(tǒng)的多點(diǎn)備份和實時保護(hù)方法
- 基于硬件的Linux軟件開發(fā)系統(tǒng)及其構(gòu)建方法
- 將VxWorks任務(wù)移植到Linux的方法及裝置
- 一種Linux內(nèi)核接管socket鏈接的方法和裝置
- 一種Linux系統(tǒng)的備份和還原方法
- 一種基于Linux系統(tǒng)盤的寫過濾系統(tǒng)和方法
- 一種基于Linux系統(tǒng)盤的熱插拔方法和系統(tǒng)





