オンラインソフトを実行するために必要なDLLを大研究
「○○.DLLが見つかりません」を解決しよう
(00/02/29)
オンラインソフトを実行したとき、「○○.DLLが見つかりません」「○○.DLLが必要です」というエラーメッセージが表示されて起動できないことがある。このエラーメッセージが表示されてしまうのは、ソフトの実行に必要な「DLLファイル」や「ランタイムライブラリ」と言われるファイルがインストールされていないためだ。これまで主にパッケージソフトを使っていた人など、オンラインソフトを初めて使う人にはちょっと戸惑うエラーかもしれない。そこでこの特集では、オンラインソフトを実行するときに必要となるDLLファイルの説明と、DLLファイルの管理に役立つユーティリティソフトを紹介する。
■ DLLファイルってなに?
DLLは「ダイナミックリンクライブラリ」の略で、通常「ディーエルエル」と呼ばれる。DLLファイルは実行ファイルとして単独で動作させることはできないが、DLLファイルには様々なソフトから利用できる機能が含まれており、DLLファイルを利用するようにソフトを開発すれば、DLLファイルがもっている機能をあたかもそのソフト自身がもっている機能のように呼び出して利用できる仕組みになっている。
たとえば、ファイルを圧縮する機能を含んだDLLファイルを使うようにソフトを開発することで、ソフト自体がファイルを圧縮するアルゴリズムをもたなくても、圧縮機能をユーザーに提供できるようになる。ソフトに圧縮機能を組み込まない分だけソフト本体のファイルサイズが小さくなり、ソフトのダウンロード時間を短縮できたり、ハードディスク容量も節約できるなどのメリットがある。また、ソフトの開発者にとってはファイルを圧縮するアルゴリズムをプログラミングするのは大変だが、圧縮機能を含んだDLLファイルを利用すればすぐに圧縮機能をソフトに追加できるため、開発者は自作のソフトとDLLファイルを組み合わせて、使いやすいファイル圧縮ソフトを作り上げることができる。ただし、ソフトが最新バージョンのDLLファイルを前提に開発されていると、インストールしているDLLファイルのバージョンが古いときにソフトが正しく機能しないことがある。DLLファイルはできるだけ最新バージョンをインストールしておくのがベストだ。
DLLファイルの中でもっとも有名なものは、LZH形式のファイルを圧縮・解凍する機能をもった「UNLHA32.DLL」。多くの圧縮・解凍ソフトはソフト本体に圧縮・解凍機能を組み込むのではなく、「UNLHA32.DLL」を利用してファイルの圧縮・解凍を実現している。この場合、ソフト本体とは別に「UNLHA32.DLL」がインストールされていないとLZH形式で圧縮・解凍できないが、一度「UNLHA32.DLL」をインストールしておけば「UNLHA32.DLL」を利用する複数のソフトで1つのDLLファイルを共有できるため、ソフトごとにインストールする必要はない。
LZH形式のファイルを圧縮・解凍できるDLLファイル「UNLHA32.DLL」
「UNLHA32.DLL」は、LZH形式のファイルを圧縮・解凍する機能をもったDLLファイル。ソフトが外部ファイルとして利用することで、LZH形式で複数のファイルを一つのファイルにまとめて圧縮したり、逆にLZH形式のファイルを解凍して元のファイルに復元することが可能になる。LZH形式のファイルには、高圧縮率のlh7や配布用に広く普及しているlh5など様々な圧縮アルゴリズムがあり、「UNLHA32.DLL」は多岐にわたって対応しているため、「UNLHA32.DLL」を外部ファイルとして使用するソフトは幅広い圧縮アルゴリズムに対応することが可能となる。
なお、「UNLHA32.DLL」をダウンロードできるWebサイト「統合アーカイバ・プロジェクト」では、ZIP形式用DLL「UNZIP32.DLL」、CAB形式用DLL「CAB32.DLL」なども公開されている。これらのDLLファイルは共通の規則のもとに作成されているため、圧縮・解凍専用ソフトやファイル管理ソフトのほか画像編集ソフトなど多くのソフトで利用できるようになっている。
【著作権者】Micco 氏
【ソフト種別】フリーソフト
【バージョン】1.46b(00/02/15)
□窓の杜 - 圧縮・解凍DLL
http://www.forest.impress.co.jp/library/unlha32.html
□統合アーカイバ・プロジェクト
http://wakusei.cplaza.ne.jp/archiver/
■ オンラインソフトの実行時に必要になるランタイムライブラリ
「ランタイムライブラリ」は、ソフトを動かすためになくてはならないDLLファイルやOCXファイルの集まりで、ソフト本体が動作するための土台のようなもの。ソフトにはウィンドウやタイトルバー、メニューやファイルを開いたり保存するときに表示するダイアログなどデザインの似た部分が多くあるが、それは共通の「ランタイムライブラリ」を使っているためだ。
ソフトを実行した時に「○○.DLLが見つかりません」とエラー表示されて起動できない場合は、「ランタイムライブラリ」と呼ばれるものをインストールすれば動作するようになる。「せっかくダウンロードしてインストールしたのに」とガッカリする前に、説明書やヘルプで「ランタイムライブラリ」のダウンロード先やインストール方法を調べてみよう。
ランタイムライブラリは、そのソフトの開発者が使っている開発ソフトやそのバージョンごとに必要で、例えば「Visual Basic 4.0」で開発されたソフトを実行するには必ず「Visual Basic 4.0」のランタイムライブラリが必要になり、「Visual Basic 6.0」で開発されたソフトを実行するには必ず「Visual Basic 6.0」のランタイムライブラリが必要になる。ワープロソフトの「一太郎」のように上位バージョンの「一太郎9」であれば下位バージョンの「一太郎5」で作成した文書も編集できるといった“互換性”はないので注意しよう。なお、各バージョンのランタイムライブラリをすべて一度インストールしておけば、同じランタイムライブラリを使うソフトを利用するときに再びインストールする必要はなく、すぐにソフトを使い始めることができる。
VB 6.0製ソフトを実行させる「Visual Basic 6.0 ランタイムライブラリ」
「Visual Basic 6.0 ランタイムライブラリ」は、プログラム開発環境「Microsoft Visual Basic 6.0」で作成されたアプリケーションを実行するのに必要なDLLファイルなどの集まり。“VB6JP.DLL”や“MSVBVM60.DLL”という最も基本となるDLLファイルのほか、“COMDLG32.OCX”という「ファイルを開く」ダイアログなどを表示するためのファイルなどが含まれている。6.0は「Visual Basic」の最新バージョンのため、これで開発されたオンラインソフトも多く、最もよく使われるランタイムライブラリといえるだろう。
「Visual Basic」には2.0/4.0/5.0/6.0の4種類の日本語バージョンが存在しており、「Visual Basic 2.0」で作成したアプリケーションであれば“VBRJP200.DLL”、「Visual Basic 4.0」で作成したアプリケーションであれば“VB40032.DLL”というように、それぞれで異なるランタイムライブラリを使用する必要がある。「ぼらぼらオンライン」ホームページでは、全てのバージョンのランタイムライブラリをダウンロードできるため、「Visual Basic」で作られたソフトが動作しない場合にはここでランタイムライブラリを入手すればよい。全てランタイムライブラリをインストールしておくと今後ランタイムライブラリがないために起動しなくて困るということもなくなる。
□ぼらぼらオンライン
http://www3.airnet.ne.jp/bora2/
■ DLLファイルを探すのに役立つユーティリティソフト
パソコンにインストールされたソフトやDLLファイル、ランタイムライブラリが多くなってくると、どのソフトがどのDLLファイルを必要としているのかわかりにくくなり、最新バージョンのDLLファイルがインストールされているかどうか確認するのも大変になりそうだ。そこで、DLLファイルやランタイムライブラリを扱いやすくするオンラインソフトを紹介しよう。
実行ファイルに必要なDLLファイルを解析する「DLL ファイル検出ソフト その2」
「DLL ファイル検出ソフト その2」は、実行ファイルの中身を解析して、実行ファイルが参照する様々なファイルを表示するソフト。使用方法は簡単で、[ファイル]-[開く]で実行ファイルを指定すればすぐに解析し、結果を一覧表示してくれる。「DLLが見つかりません」というエラーメッセージを見るたびにDLLファイルをダウンロードしてインストールするのはとても手間がかかるが、実行ファイルに必要なファイルをあらかじめリストアップしてインストールしておけば、エラーメッセージに悩まされることもなくなるだろう。
【著作権者】上羽 紘吉 氏
【ソフト種別】フリーソフト
【バージョン】-
□作者 上羽 紘吉(Vectorホームページ)
http://www.vector.co.jp/vpack/browse/person/an011389.html
インストール済みのDLLファイルを表示する「DLL Checker」
「DLL Checker」は、よく利用される9種類のランタイムライブラリや圧縮・解凍用DLLファイルのインストール状況を一覧表示するソフト。起動するだけで一覧表示されるため使いやすく、[詳細情報]ボタンでインストール済みDLLファイルのバージョンを表示したり[ダウンロード]ボタンで各DLLファイルのWebサイトへジャンプすることもできる。さらに、同梱されている「DllchkEx.ini」を用いると25種類ものDLLファイルをチェックできるようになり、「DllchkEx.ini」に自分でファイル名を書き込めば任意のDLLファイルもチェックできる。このほか、ソフト開発者向けの「DLL Checker for Programmers」もあり、インストーラーに組み込んでソフトのインストール時に必要なDLLファイルがあるかどうかチェック可能だ。
【著作権者】T. Funayama 氏
【ソフト種別】フリーソフト
【バージョン】1.32(00/01/21)
□ふ印良品へようこそ
http://homepage1.nifty.com/funayama/
インストール済みのDLLファイルのバージョン表示する「CL Windows」
「CL Windows」は、インストール済みのランタイムライブラリや圧縮解凍用のDLLファイルをファイルの種類ごとに分類して、ツリー形式で見やすく表示するソフト。圧縮・解凍DLLファイルについては最新版かどうかのチェックができるうえ、[Get it!]ボタンで各DLLファイルのWebサイトへジャンプできる。1.0から6.0までの「Visual Basic」のランタイムライブラリやMFCランタイムのほか、「UNLHA32.DLL」や「UNZIP32.DLL」など11種類の圧縮・解凍DLLファイルのインストールの有無とバージョンをチェックできるため、ランタイムライブラリや圧縮・解凍DLLファイルのバージョン管理が容易になる。ソフトを利用するときにランタイムライブラリや圧縮解凍DLLファイルが必要だと説明書やヘルプに書かれていたら、まず「CL Windows」で確認するといいだろう。
【著作権者】後藤 大輔 氏
【ソフト種別】フリーソフト
【バージョン】1.13.3(00/02/26)
□暁の傭兵 ソフトはうす
http://www.fx.sakura.ne.jp/~dmgoto/
■ それでも「○○.DLLが見つかりません」を解決できないときは?
圧縮・解凍用のDLLファイルや「Visual Basic」用のランタイムライブラリ以外にも数多くのDLLファイルやランタイムライブラリが存在するため、「○○.DLLが見つかりません」をなかなか解決できないかもしれない。その場合は、ソフトに同梱されている説明書やヘルプでDLLファイルのダウンロード先やインストール方法を確認してみよう。
また、必要なDLLファイルのダウンロードページがわからない場合は、ベクターのライブラリや、様々な国のWebサイトを検索できる「AltaVista」などの検索ポータルサイト、世界中のFTPサーバを検索できる「FTP SEARCH」でファイルを検索するのも一つの方法だ。
□Download /win95/util/runtime/
http://www.vector.co.jp/vpack/filearea/win95/util/runtime/
□AltaVista - Search
http://www.altavista.com/
□FTP SEARCH ftpsearch.com
http://www.ftpsearch.com/
(山崎 真裕)