软件地址:https://mod.3dmgame.com/mod/181318
软件90%的用户都可以正常使用,唯独有极少部分用户一进入主界面就会崩溃,头都想破了,想不出是什么地方问题。目前不知道崩溃原因,主窗口下面的代码也都是一些,创建组件,赋值图片,修改背景色之类的代码。
如果真 (超级按钮_取消.标题 = “取消”) 线程_销毁 (线程句柄 ) 程序_延时 (100, ) 写日志 (“手动停止程序”, #日志类型_信息, , , , ) 停止网关 () _初始化. 销毁 () 返回 () 如果真 (超级按钮_取消.标题 = “进入”) 如果真 (线程_取状态 (线程句柄 ) = 1 ) 线程_销毁 (线程句柄 ) 写日志 (“开始进入主程序”, #日志类型_信息, , , , ) 程序_延时 (100, ) 载入 (窗口_主程序, , 假) 返回 () 如果真 (超级按钮_取消.标题 = “重试”) 线程池. 关闭 () 网关. 停止 () _初始化.超级按钮_取消.禁止 = 真 线程_销毁 (线程句柄 ) 程序_延时 (100, ) 线程句柄 = 线程_启动 (&初始化, , )
上面这段是 操作初始化窗口的代码。这里并没有什么问题,所有用户都可以正常初始化到最后一步,就是后面进入到 主界面后 直接无响应了
主窗口下的代码也只是一些 给组件赋予背景颜色,调整尺寸,动态创建组件,这些代码。实在想不明白,到底是哪里出了问题。而且还只是在极少部分人里出现,出现的问题还都是无响应。
当主窗口出现的时候,所有的UI都是创建好的。然后就无响应了。
下面这段 是初始化线程的代码
变量名 | 类 型 | 静态 | 数组 | 备 注 | 网址 | 文本型 | | | 返回值 | 文本型 | | | JSON | 类_json | | | 是否成功 | 逻辑型 | | | APPID | 文本型 | | | 局_POST | 类_POST数据类 | | | 更新返回值 | 文本型 | | | Name | 文本型 | | | Pass | 文本型 | | | 局_URL | 文本型 | | | 局_Ver | 文本型 | | |
连接次数 = 连接次数 + 1 _初始化.标签2.标题 = “正在启动程序,请稍等..” 如果真 (配置.日志标识 = “”) 配置.日志标识 = 时间_到文本 (取现行时间 (), 0, , ) 如果真 (日志池. 创建 (配置.日志标识 ) = 假)  配置.日志标识 = “”  _初始化.标签1.标题 = “日志池创建失败!” 初始化_重试 () 返回 ()  写日志 (“正在进行[ ” + 到文本 (连接次数 ) + “ ]次连接”, #日志类型_信息, , , , )写日志 (“正在初始化..”, #日志类型_信息, , , , )_初始化.标签1.标题 = “正在初始化..” 如果真 (线程池. 启动 (, , , ) = 假) 写日志 (“线程池创建失败!”, , 真, _初始化.标签1, #红色, ) 初始化_重试 () 返回 ()APPID = “1001”网址 = “http://api.s.igamep.com:8080/api”写日志 (“请求连接信息..”, #日志类型_信息, , , , )返回值 = _AES解密 (到文本 (网页_访问 (网址, 1, “Type=Getip&PID=” + APPID, , , , , , , , , , )) ) 如果真 (返回值_是否成功 (返回值 ) = 假) 写日志 (“服务器连接失败!”, , 真, _初始化.标签1, #红色, ) 初始化_重试 () 返回 () 如果真 (Arai_初始化 () = 0 ) 写日志 (“下载引擎初始化 - 失败..”, , 真, _初始化.标签1, #红色, ) 初始化_重试 () 返回 () 写日志 (“下载引擎初始化 - 成功..”, , 真, _初始化.标签1, , 1 )程序_延时 (500, )写日志 (“开始检测更新..”, #日志类型_信息, 真, _初始化.标签1, , 1 )JSON. 解析 (返回值, 真, )配置.IP = JSON. 取通用属性 (“data[0].IP”, )配置.TcpPort = 到整数 (JSON. 取通用属性 (“data[0].tcpport”, )) 配置.httpPort = 到整数 (JSON. 取通用属性 (“data[0].httpport”, )) 配置.通信秘钥 = 到整数 (JSON. 取通用属性 (“data[0].appKey”, )) 配置.应用名称 = JSON. 取通用属性 (“data[0].Name”, )配置.应用版本 = JSON. 取通用属性 (“data[0].Ver”, )配置.更新文件列表 = JSON. 取通用属性 (“data[0].FileCode”, )_初始化.标题 = 配置.应用名称 _初始化.标签_标题.标题 = 配置.应用名称 如果真 (配置.应用版本 = “”) 写日志 (“检查更新失败.”, , 真, _初始化.标签1, #红色, ) 初始化_重试 () 返回 () 如果 (配置.应用版本 = 配置.本地版本 ) 写日志 (“您当前是最新版本..”, #日志类型_信息, 真, _初始化.标签1, , 1 ) _初始化.标签2.标题 = “您当前是最新版本..” 目录_删除目录 (取运行目录 () + “\Update”) 目录_创建 (取运行目录 () + “\Update”) 写日志 (“发现新版本,即将开始更新..”, #日志类型_信息, 真, _初始化.标签1, , 1 ) _初始化.标签2.标题 = “如果更新失败,请前往 3DMMOD站 重新下载覆盖” 写日志 (“即将开始更新.. 3”, #日志类型_信息, 真, _初始化.标签1, , 1 ) 程序_延时 (1000, ) 写日志 (“即将开始更新.. 2”, #日志类型_信息, 真, _初始化.标签1, , 1 ) 程序_延时 (1000, ) 写日志 (“即将开始更新.. 1”, #日志类型_信息, 真, _初始化.标签1, , 1 ) 程序_延时 (1000, ) _解析更新 (配置.更新文件列表, 局_URL, 局_Ver ) _初始化.标签2.标题 = “您当前是:” + 配置.本地版本 + “ 最新版:” + 局_Ver 写日志 (更新程序 (配置.更新文件列表 ), #日志类型_信息, 真, _初始化.标签1, , 1 ) 程序_延时 (5, 1 ) 调试输出 (配置.IP, 配置.TcpPort, 配置.httpPort, 配置.通信秘钥, 配置.应用名称, 配置.应用版本 )写日志 (“正在连接服务器..[ ” + 配置.应用名称 + “]”, , 真, _初始化.标签1, , 3 ) 如果 (设置.离线模式 = “1”) 写日志 (“正在使用离线模式进入”, , 真, _初始化.标签1, , 3 ) 是否成功 = 网关. 启动 (配置.IP, 配置.TcpPort, 假, &客户端_事件_数据到达, &客户端_事件_关闭, &客户端_事件_连接, 真) 如果真 (是否成功 = 假) 写日志 (“服务器连接失败..[ ” + 配置.应用名称 + “]”, , 真, _初始化.标签1, #红色, ) 初始化_重试 ()  如果 (连接次数 > 2 )   判断 (提示框 (“您已经多次连接失败,是否使用离线模式进入?”, #警告图标 + #是否钮, “离线模式”, , 10000 ) = #是钮 )    设置.离线模式 = “1”   返回 ()      返回 ()      局_POST. 清空 ()局_POST. 添加 (“Type”, #界面布局, ) 如果 (设置.离线模式 = “1”) 返回值 = 到文本 (读入文件 (取运行目录 () + “\offlinemode\ui.data”))  如果真 (返回值 = “”)  返回值 = #离线_界面布局    返回值 = HTTP_发送请求 (局_POST. 获取Post数据 (), 真, “api”) 解析_界面布局 (返回值 )局_POST. 清空 ()局_POST. 添加 (“Type”, #游戏列表, ) 如果 (设置.离线模式 = “1”) 返回值 = 到文本 (读入文件 (取运行目录 () + “\offlinemode\game.data”))  如果真 (返回值 = “”) 写日志 (“请先使用在线模式成功初始化一次!”, , 真, _初始化.标签1, #红色, ) 程序_延时 (2000, )  设置.离线模式 = “0” 写配置项 (取特定目录 (1 ) + “igamep\config.ini”, “config”, “Offline”, “0”) 写日志 (“已为您转到在线模式 ,请重试!!”, , 真, _初始化.标签1, , 1 ) 初始化_重试 () 返回 ()   返回值 = HTTP_发送请求 (局_POST. 获取Post数据 (), 真, “api”) 如果真 (返回值_是否成功 (返回值 ) = 假) 写日志 (“加载游戏信息失败”, , 真, _初始化.标签1, #红色, ) 初始化_重试 () 返回 ()写到文件 (取运行目录 () + “\offlinemode\game.data”, 到字节集 (返回值))配置.推送信息.信息 = 查询_公告 ()推送信息解析 (配置.推送信息.信息 )配置.游戏列表 = 返回值 判断 (_游戏列表. 读 (返回值 ) = 真) 写日志 (“游戏载入 - 成功..”, , 真, _初始化.标签1, , 1 ) 写日志 (“游戏载入 - 失败..”, , 真, _初始化.标签1, #红色, ) 初始化_重试 () 返回 () 如果真 (_已访问列表. 创建 ( #文本型, #文本型, , , , , ) = 假) 写日志 (“哈希表初始化 - 失败..”, , 真, _初始化.标签1, #红色, ) 初始化_重试 () 返回 () 如果 (初始化_7z () = 假) 写日志 (“7z加载 - 失败..”, , 真, _初始化.标签1, #红色, ) 写日志 (“7z加载 - 成功..”, , 真, _初始化.标签1, #墨绿, ) 写日志 (“正在载入图片..”, , 真, _初始化.标签1, , 1 ) 如果 (设置.离线模式 = “1”) 返回值 = 到文本 (读入文件 (取运行目录 () + “\offlinemode\ad.data”))  如果真 (返回值 = “”) 写日志 (“离线模式 - 取消载入ad ”, , 真, _初始化.标签1, #红色, )   返回值 = 查询_广告列表 () 如果真 (返回值 ≠ “”) 写到文件 (取运行目录 () + “\offlinemode\ad.data”, 到字节集 (返回值 ))  JSON. 解析 (返回值, , ) _ad [1 ].Name = JSON. 取通用属性 (“data[0].Name”, ) _ad [1 ].URL = JSON. 取通用属性 (“data[0].url”, ) _ad [1 ].IMG = HTTP读文件 (JSON. 取通用属性 (“data[0].img”, ))  _ad [2 ].Name = JSON. 取通用属性 (“data[1].Name”, ) _ad [2 ].URL = JSON. 取通用属性 (“data[1].url”, ) _ad [2 ].IMG = HTTP读文件 (JSON. 取通用属性 (“data[1].img”, )) 写日志 (“正在配置游戏信息..”, , 真, _初始化.标签1, , 1 )配置.默认选择ID = 到整数 (查询_默认ID ()) _插件管理. 打开 ()_配置. 初始化 ()_配置. 读取默认游戏 (配置.游戏ID, 配置.当前游戏名, 配置.导航ID )_初始化.超级按钮_取消.禁止 = 假 写日志 (“您当前是最新版本..”, #日志类型_信息, 真, _初始化.标签1, , 1 ) 如果真 (设置.自动登录 = “1”) 写日志 (“开始登录您的账户..”, #日志类型_信息, 真, _初始化.标签1, , 1 ) Name = 读配置项 (取特定目录 (1 ) + “igamep\mod_user.igamep”, “user”, “name”, “请输入手机号/论坛账号”) Pass = 文本_解密 (读配置项 (取特定目录 (1 ) + “igamep\mod_user.igamep”, “user”, “pass”, “请输入密码”), “23544asd4asd87qwe921zxc”) 判断 (设置.离线模式 = “1”)  _用户信息.是否登录 = 真  写日志 (“离线登录成功..”, #日志类型_信息, 真, _初始化.标签1, , 1 )  返回值 = _模组. 登录 (Name, Pass, , )  判断 (返回值 = “ok”)  写日志 (“自动登录成功..”, #日志类型_信息, 真, _初始化.标签1, , 1 )  写日志 (返回值, #日志类型_信息, 真, _初始化.标签1, , 1 )    功能_启动程序_初始化 ()Gdiplus初始化 ()写日志 (“初始化成功..[ ” + 配置.应用名称 + “]”, , 假, , , 1 )_初始化.超级按钮_取消.标题 = “进入”_初始化.标签2.标题 = “初始化成功..请点击 [ 进入 ]”
在下面这段就是主窗口创建完毕后的代码
|