起初是由
天涯浪人提出要求,後來
peaceworld再提出疑問,所以小弟再把關於 Delphi 6 編寫之簡體中文程式的修改之細微之處,做一詳盡說明
用Win98SE修改Delphi 6編寫的簡體中文程式,受限於環境因素,似乎只能用CXAT來翻譯,聽說 Language Localize 也支援 Delphi 6 ,但小弟對它不感興趣,另也是聽聞其不穩定,所以未安裝測試,諸位有興請自行測試。PE Explorer 1.8~ 也支援 Delphi 6 ~,但也僅能讀得出來,既不能檢視內容更不能編輯修改
在這樣的條件下修改 Delphi6 ,有一個關鍵就是語系的修改,一般的 Delphi 程式遇到無法用中文化工具載入修改時可以用黃大仙首創的移花接木法來更改,該法請至中文黃大仙查鴃A但在這裡這招好像不起作用,小弟因而做了小幅的修改,俾使移花接木法能得以利用,改法稍候詳述
照例,拿到程式後先執行看看
接下來,看看有沒有經過加殼壓縮,執行WinCV,當光棒(光條?)移到FlashChanger.exe上時,按Alt+Z快速鍵壓縮看看
由下圖看到壓縮前後的檔案大小,壓縮率大約60%,幾乎可以斷定未經加殼,有什麼壓縮加殼軟體這麼差勁,再壓縮成zip時竟還有60%的壓縮率?
若還是不確定,用中文化程式載入看看唄

字串表正常顯示,沒有跳出「該程式已被壓縮加殼」的訊息框,這下放心了吧!
接下來就是重點:
移花接木•改的技巧,前半段是一樣的,用16進制編輯工具載入FlashChanger.exe,搜尋到GB2312_CHARSET後,改成GB2313_CHARSET,如下圖
註:只改這一處就好,以下的GB2312_CHARSET都不用改
第二段的變化如下圖,原本黃大仙的改法是把CHINESEBIG5_CHARSET改成GB2312_CHARSET之後多餘的字元改成90,但在這裡行不通,所以小弟略加變化修改之

把後面多餘的字元改成00,而前面的13改成0E。
對於修改Delphi程式已有經驗的人而言,就知道這個13、0E就是代表這組字串的長度的值,0E=14個字元(位元組);13=19個字元(位元組)
剩餘的工作就靠CXAT了,依序做完ASCII、UNICODE、UTF-8編碼(順序不拘,但三者都要做)的轉換、修飾,完成品如下圖
如有疏漏,歡迎指正
還有,這招也不是百試百靈的
作者:ru5j123