您的位置首页百科知识

入坑Galgame到底有多难?

入坑Galgame到底有多难?

的有关信息介绍如下:

入坑Galgame到底有多难?

是的,很难

首先,玩Galgame的前提是下载Galgame

那么,以HTTP协议的下载站为例,你需要做以下事情:

向NS服务器发送请求。等待返回。根据返回值取得文件服务器网络地址。

向文件服务器发起请求。等待返回。根据返回值解析文件信息。

在本地创建文件对象,并设置文件大小。

创建线程。

对于每个线程:向文件服务器发起带RANGE字段的请求,获得文件的一部分;等待返回;等待文件上锁,将内容保存到文件,解锁。

关闭线程。

到这里,我们才算是真正地完成了开始玩Galgame前的准备工作。

然后,我们调用CreateProcessW函数启动这个程序。

CreateProcess解析了一部分参数后,通过SystemSearchFile寻找到程序文件,并配置相关环境。NtOpenFile获取文件句柄,NtCreateSection将文件载入内存,再作为解析可执行文件头部,以获得堆栈大小、程序入口等一系列信息。一系列检查通过后,调用NtCreateProcess启动程序,并执行NtResumeThread使它开始运行。

NtCreateProcess又会调用PspCreateProcess。PspCreate创建内核进程对象,创建程序运行需要的地址空间、运行环境等,并初始化。

在程序开始执行后,会通过CreateWindow创建一个窗口。从资源文件中加载图片、文字、音频等资源,并通过相关API显示程序界面。

如果你这时候移动一下鼠标,鼠标会产生一个interrupt。系统接受并处理这个irp,并向当前窗口发送一个WM_MOUSEMOVE消息。

最后,当你把鼠标放置在“开始游戏”的按钮上时,请用力点击鼠标左键。

在解析到鼠标点击操作时,程序正式跳转向第一段剧情

到这里,我们终于成功地“入坑”了游戏

可喜可贺,可喜可贺。