2014年7月7日月曜日

Windows7 / 8 で VB5製アプリ起動時に、エラー「MSVBVM50.dllが見つかりません。」が発生する

Windows7 / 8 で VB5製アプリ起動時に、エラー「MSVBVM50.dllが見つかりません。」が発生する。

Windows 7 / 8.xでVB5で作成された、EXEやDLL、OCXを利用したアプリ起動時にエラー「MSVBVM50.dllが見つかりません。」が発生する場合があります。

症状は、エラーメッセージが表示される場合と、EXEをダブルクリックしても
何も動かない、何もエラーメッセージが表示されない場合など、複数のケースがあります。

また、類似の症状としては、起動しても、日本語部分が文字化けしてしまう事もあります。


原因は、MSVBVM50.dllを読み込むことができないためです。
VB5で作成されたアプリは、MSVBVM50.dllが必須になります。

Windows 7 / 8には、VB5のランタイムの中核である、MSVBVM50.dllが含まれていません。
Wiindows XPまでは、標準でインストールされているため、別途入手しなくても
それなりに動作していました。

起動しても、日本語部分が文字化けを起こす場合は、VB5の日本語リソースの入ったVB5jp.dllが必要です。


ThinAppやApp-Vでアプリを仮想化して、Windows 7 / 8で動作させる場合に
問題になる事象の代表例になります。



ThinAppで仮想化した場合のエラー表示:
Unable to load DLL C:\hoge.EXE->MSVBVM50.DLL
指定されたモジュールが見つかりません。

原因:MSVBVM50.dll が見つからないためです。

対策:MSVBVM50.dllをプロジェクトフォルダに、配置します。
   %SystemSystem%にMSVBVM50.dllをコピーし再Buildをします。
   また、日本語文字化け対策として、VB5JP.dllも合わせてコピーします。


対策前)

対策後)


正常に動作しました。