※ 引述《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 相容性
不過遊戲太吃重效能,應該不會想多包一層東西