FrontPage

http://www.faireal.net/ より転載。体裁の変更はtitoによる。

OSとDLLと互換性の話

トラブルシューティング:WavPack 4.40βのin_wv.dllが機能しない

2006年11月22日

現象:

wp440b.zip同梱のWinampプラグインin_wv.dllが認識されないことがあります。 以前のバージョンは認識されます。

原因:

Visual C++ 2005のCランタイムであるMSVCR80.DLL がインストールされていません。 最近、このラインタイムがないと動作しないプログラムが増えています。 上記バージョンの in_wv.dll も MSVCR80.DLL に依存します。

解決方法:

vcredist_x86.exe や .NET Framework2.0 などで、必要なランタイムを導入してください。

注意: 一般に、このランタイムはバージョン管理が行われる(異なるバージョンが共存できる)ため、 単に DLL をシステムフォルダ等にコピーせず(それでも実際には動作すると思いますが)、 一応インストーラーを使ってください。

参照文献:

WavPack 4.40.0 beta available, final release soon to follow... ( Hydrogenaudio Forums)

補足情報

  • マイクロソフトが(部分的には買い換えを促すため)開発環境 Visual Studio 6 の公式サポートを中止しました。 WavPack の作者 bryant もコンパイラを Visual Studio 2005 に変更しました。 細心の注意を要するビットアイデンティカルなロスレスのツールであるため、 正式にサポートされていない環境で開発して、万一、予期せぬ問題が出ないように、との慎重策と思われます。 このランタイムがないと動作しなくなってしまうことは既知の問題で、 正確な時期は未定ですが、将来のin_wv.dllではランタイムに依存しないように変更するようです。 ただし、これに限らず、MSVCR80.DLL がないと動作しないプログラムはたくさんあり、 マルチメディア関係のフォーラムで泣き言を言うと、 往々「とりあえずランタイムを入れろ。話はそれからだ」というような反応が返ることもあります。
  • 逆に VC6 で開発してある場合、 最新のランタイムを入れても、(特に Windows XP で)起動時に起動できませんといった趣旨のエラーメッセージが出る(でも起動できる)ことがあります。 その場合は、次のようなダミーのファイルをメモ帳で作成して同じフォルダに入れると、解決することがあります。

正確にこのとおりでなくてもいいが、だいだいこんな感じ。 XP が例えば foo.exe というEXEについてぐたぐたいう場合は、 foo.exe.manifest という名前のテキストファイルを作って、 こんなことを書いておくと、おとなしくなってくれる。 MS の辞書に互換性の文字はない。 (tito追記:それはいいすぎ)

<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<dependency>
   <dependentAssembly>
       <assemblyIdentity type='win32'
           name='Microsoft.VC80.CRT'
           version='8.0.50727.42'
           processorArchitecture='x86'
           publicKeyToken='1fc8b3b9a1e18e3b'
       />
   </dependentAssembly>
</dependency>
</assembly>

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-11-14 (土) 19:20:04 (5266d)