level 3
小硫博仕-
楼主

【起因】从今年2.9开始,陆续有玩家与我反应打不开游戏,打不开的报错内容全都为下图所示

一开始我还不怎么在意,以为是一些人自己电脑的问题,但是最近越来越多的人反馈有同样的问题,使我不得不重视起来。经过与两位小伙伴的联合测试,终于排查出了问题所在:凡是装有小狐狸插件(FoxWriting)的GM工程,在使用更新的显卡驱动时,都会出现此问题
【问题描述】
充分条件:
①游戏exe由装有FoxWriting.gex扩展包的GM8工程导出 或 在GM8工程中外部调用了FoxWriting.dll
②使用win11以上并装有GPU的电脑,且显卡驱动经过了某次重要更新(哪一次尚不明确)
必要条件(现象):
点开exe文件后,会有读条动画,条读完后立即闪退,并显示Unexpected error occured when running the game.
问题严重性:
①目前而言,除了FoxWriting插件,GM8中没有什么更好的中文绘制插件,无法找到功能类似的平替,也就是说无法再进行中文绘制
②显卡驱动的更新具有时间维度必然性,之后必定会有越来越多的玩家遭遇此问题,预期扩散速度快
③插件作者Noisyfox已经10年未更新此插件,不可能通过原作者来修复这样一个适应性问题
【尝试修复失败】
我下载了Noisyfox的开源代码,找到了其中关键的FoxWriting.dll;在GM中调用尝试后,无论哪种调用方法,只要动用了FoxWriting.dll,就会产生此问题。所以问题必定处在这个dll上



尝试使用VC++再编译一次dll,但是由于我的VC++版本似乎过高(2022),与其中gmapi的编译版本(2015)不符,从而产生各种错误,无法编译;且2022版的VS无法下载Windows SDK 8.1的目标平台
报错信息①:1>C:\...\FoxWriting\LINK : fatal error C1047: 对象或库文件“C:\...\FoxWriting\\lib\gmapi-mt.lib”是使用与其他对象(如“Release\CodePage.obj”)不同的编译器版本创建的;请使用相同的编译器重新生成所有对象和库报错信息②:C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\Win32\PlatformToolsets\v140\Toolset.targets(34,5): error MSB8036: The Windows SDK version 8.1 was not found.
【核心问题定位推测】
观察到FoxWriting.cpp中调用了大量的D3D8.h与D3D8.lib中的库,而D3D8库是图像渲染处理的,根据以往的经验,显卡驱动会与该插件不兼容的原因只能是和D3D8不兼容(至少是fw插件用的这个D3D8版本)

【求助】有无精通GM8插件或是对小狐狸插件工程较为熟悉的小伙伴研究一下,如何对其调用的D3D8库进行更新尝试,以及重新编译插件dll(我的VS2022似乎做不到),或是有无其他方法可以修正此不兼容带来的错误
【叹】
没有了FoxWriting真的什么都做不到