4.5 KiB
之前的章节,已经把miniblink相关的逻辑功能,写好; 回到core头文件,添加显示网页的ShowMiniBlink枚举,还有声明MiniBlink函数;
core源文件,include添加miniblink背景相关,头文件引用
对应的窗体调用,逻辑实现
Invoke触发函数中,通过case和枚举调用
开始构建
完成构建后,回到Unity,同名的,加上对应枚举
再加上对应的callback回调函数
在OnGUI中,加上按钮的触发和调用
运行游戏,点击
内置浏览器,功能显示正常,点击背后的ui按钮,即可关闭
开始弄打印相关,core头文件,之前是有声明print打印函数;
源文件,对应函数实现,首先调用Logger设置颜色,然后通过不同的case,触发不同的Log打印信息即可
在Main主函数,添加一个PrintLog的函数导出
构建
回到Unity端,导入对应dll的PrintLog函数,再调用几次
OnGUI中,按钮触发,打印测试
运行游戏,分别点击后,log信息打印正常
Unity,打开项目设置
确认一下,组织名称Company Name,当前是默认的DefaultCompany,后续测试Unity崩溃异常,生成的log文件和dmp文件,也是在,对应该路径下的Temp文件夹,生成;
崩溃信息相关文件夹子路径,还会包含,游戏标题
回到Qt,崩溃捕获相关,参考SetUnhandledExceptionFilter 函数 (errhandlingapi.h),在Core代码,cpp源文件中,需要引用和包含errhandlingapi.h
.h头文件中,加一个写入文件相关的,writeToFile函数声明,具体实现,参考qt文件写入IO测试
回到源文件,对应文件写入的逻辑实现
异常捕获的筛选器,初始化,设置nullptr空指针;
ApplicationCrashHandler函数实现,对应的是,dll附着的unity主线程,出现崩溃异常的时候,从windows的Temp文件夹下,拿到上述提及的,默认DefaultCompany文件夹,对应unity游戏名称子文件夹,包含的Crashes文件夹,其中会包含,报错的dmp文件,还有log日志文件相关;
获取到对应的路径dir_list后,通过writeToFile函数接口,写入到,对应的,自定义文本文件捕获异常.txt,然后quit退出sdk相关,再返回异常EXCEPTION_EXECUTE_HANDLER句柄
在Core的构造函数,完成注册,异常捕获函数即可
重新构建dll文件
回到Unity,也添加测试崩溃的OnGUI相关逻辑
运行游戏,先不点击,看看ui位置
开始编译
确认编译平台,先是PC的编译,点击按钮,添加相关场景,再选择64位编译方式
这时候,Unity应用程序的,相对路径,就已经改变了; 回到Unity引擎,复制这几个,需要使用到的,sdk相关配置文件;
粘贴到,编译后的exe程序路径
运行游戏,点击按钮
触发unity崩溃,文件生成,也是正常的
存储的文本路径,正常
如果要生成,pdb符号表文件,编译的时候,勾选即可
定位报错相关,参考windbg崩溃检测








































