※ 引述《carotyao (汐止吴慷仁)》之铭言:
: 不知道有没有人遇过
: 我自己亲眼碰过就N次
: 然后也不知道怎么办
: 有十多重灌几次忽然又可以了
: 两台电脑
: 一样配备
: 一样CLEAN OS
: 一样DX引擎之类的
: 有一台怎样就是不能玩 到XP都还有
: 好像到WIN7开始才大幅解决这问题
: 有人也碰过吗XDDD
讲到这问题
以前有一个情况很常发生,就是 C:\WINDOWS\SYSTEM32\ 底下的 DLL 被疯狂覆蓋
那个时候很流行把通用的函式库装进 C:\WINDOWS\SYSTEM32
而 16位元的作业系统或档案是丢在 C:\WINDOWS\SYSTEM
因为每套软件安装时都喜欢把自己包的 DLL 丢过去
久而久之就发生了 xxx.dll 档名一样但是版本不一样的状况
导致某些 API 在新旧版本之间不相容,呼叫时发生错误就没办法玩了
重灌也要看情况,有覆蓋回去相容版本就又可以玩了,没覆蓋到的话还是不能玩
或许是因为这种痛苦的经验,后来有一阵子小游戏或小程式流行免安装
不依循 install 规范把通用的 DLL 丢进系统目录内,不跟别人打架,比较单纯
现代程式开发好像对版本问题也有很多套处理方法
像是 node.js 有 nvm 来切换版本环境,npm 则用 package.json 管理套件相依原则
再进化到虚拟机、docker 直接把环境封装起来....
以后玩游戏不知道会不会也走环境封装的路提升 PC 相容性
不过游戏太吃重效能,应该不会想多包一层东西