这两天从网上down了一个小游戏,MarioXp,让我又重温了儿时的经典游戏。可是,打到后来,因为太难打,我就打不下去了。这时,我突然有个想法,如果可以即使Save/Load,就好了。
仔细想了一下,这就需要把游戏中内存相关部分全部保存到硬盘,再在需要时,从硬盘写到内存。但这不是某个值,而是一个比较复杂的状态。另外,其实我并不太会应用程序编程,所以,希望各位大侠能告知一个较为具体的实现思路,谢谢!
另外,这个游戏是windows下的,如果是dos下的呢?区别大吗?谢谢大家!
dos下比较简单,我原来写过,因为dos下内存就640k,再加上上位内存,不超过1M,将相关的内存全部写入硬盘即可,需要时再调出,唯一的问题是涉及到dos的重入,需要仔细。
windows下由于是多任务的操作系统,且内存是可以移动的,需要考虑的细节要多一些...
你到MSDN里面查下面这两个函数就可以了
WriteProcessMemory
ReadProcessMemory
游戏修改工具就是这么做的
写入其它程序的内存是可以的,但要完整保存其它程序的内存环境就不太容易实现。要把其它程序的内存环境完整恢复,没有操作系统的支持不可能完成。