开篇前言
汉化的过程总会遇到各种各样的问题,让人抓狂,这一篇我就来讲解一下一个特殊的单词的汉化以及我的“艰辛历程”。
起因介绍
在SnippetCompiler有这么一个奇葩的字符串“查找>>”
通过精确的定位我找到了他所在的位置在这:
看到了没有,Replace不再是我们熟悉的ldstr “Replace”了,他成了一个二进制的数组了, 不用管他我们直接改就行,把他改为Replace生成ok,没有问题,打开一看也替换过来 了,点击测试一下出错了。
唉!看源码吧,哪里出问题了。
找到了单击事件那里
看到了没有,人家做了验证了,末尾必须要是x00bb,nnd没办法了,改原来的二进制 数组吧。我这里也是找了好久才找到一个相对简单的办法,我称之为替换法,就是用其 他的字符串来替换这里。具体如下:
第一步:既然我们正在汉化SnippetCompiler那就用他好了。使用SnippetCompiler编写 如下代码
1 using System; 2 using System.Collections.Generic; 3 public class MyClass 4 { 5 public static void Main() 6 { 7 string str="替换(&R)"; 8 } 9 }
生成一个*.exe文件去。
第二步:使用ildasm反编译生成的exe文件得到了一个il的文件,用记事本打开它,看到 了没
这个就是我们最终要替换的字符串,拿过去替一下保存试试。
最终结果:
看木有问题啊,单击也没事。
成功。
虽然他肯定是有特定的算法来得到的二进制数组,但这里我就偷个懒了,用替换来得到,大家如果有兴趣可以自己尝试去解解看怎么算的。