Windows11でExact Audio Copyが起動しない

Posted: 2023/11/04
Updated: 2025/05/11
Category: 知性

2025/05/11追記

いつの間にか Exact Audio Copy v1.7 / 1.8 が出ていた。更新止まってそうだったので書き忘れていたが、本稿を書いた時点での最新バージョンは v1.6 であった。

公式の What’s new によれば、 v1.7 で AccurateRip 周りが本体に統合されたみたいなことが書いてある気がするので、このパッチを当てる必要はなくなっているはず。ちなみに v1.8 は v1.7 のデグレ解消という感じのようなので何も考えず v1.8 を使っておけば良いということになる。

ただし、 v1.7 以降 freedb のサポートが削られているので、これが困るというという場合には v1.6 を使い続ける必要がある。たぶん freeDB.org が止まったことからサポート切ったんだと思うんだけど、 freedb 日本語 とか使ってたら関係ない気がするし何で削ったんだ…

症状

Windows11 環境で EAC が起動しない。starting的な画面も出ずプロセスだけが残り続ける状態になる。

調査

EAC 起動時に自動的に読み込まれる AccurateRip.dll が Application Data ディレクトリのパスを取得するために SHGetSpecialFolderLocation を呼んでいるのだが、これが失敗することで正常に起動しない状況となっていた。

SHGetSpecialFolderLocation の引数として CSIDL_APPDATA が指定されているが、これを CSIDL_COMMON_APPDATA に書き換えることでとりあえず起動できるようになった( CSIDL_* の値については 参考ページ1参考ページ2 を参照した)。

以下気づいたことメモ

調査の結果起動するようになった感動のシーン

具体的対応手順

EAC インストールディレクトリにある AccurateRip.dll を適当なバイナリエディタで開き、アドレス 0000BA6F にある 1A23 に書き換える。

図中選択部を 23 に書き換える