软件开发

VC++6.0开发仙剑五存档修改器系列教程(四)总结

现在做一个总结,也算是一个我自己的笔记吧。回来有机会继续写。源代码地址请在本站资源下载页面下载。

ASCII码的范围是0~127共128个。一个字节八位,第一位符号位,所以正好是0~127。所以一个有符号字符char表示的范围有限,无法读取0x80
以上的十六进制数,会溢出,可以适当转换或者是直接用无符号数组来储存。这里我用了buf数组。
在有些游戏的存档里,经验或者金钱所占的字节数是动态分配的,这就增加了一些难度。比如0~255时占一个字节,256以上就要两个字节了,
这时应该分情况考虑。
一个存档文件,用字符来显示非常复杂,包含的0特别多所以读取函数不可以遇0终止或者遇换行符终止。我用了read函数。
仙剑五的存档文件会写入一些激活信息,所以每个人的存档文件会有一些不同。尽管仙剑五的存档的金钱等的地址是不变的,但是不同玩家的
地址是不同的,所以不可以用固定地址来定位数据的位置。所以必须用寻找某种标志来唯一确定那个位置。我这次就是使用前边的某几位是什
么来标记的。
在mfc中可以使用iostream或者fstream或者string等等,只要在合适位置添加即可。
要处理好全局变量和局部变量。
控件添加变量时选择value属性,此时只有value才可以实现我们需要的功能。在更新时用UpdateData(true);UpdateData(false);两个语句来
包括。
CString类的私有成员储存了字符串,需要转换char *时,用GetBuffer(0);函数。
理解消息的触发。

点击返回第一篇

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据