初めまして、@7shiと申します。印欧祖語を目指してラテン語を勉強するため(?)、ラテン語の読書会を開催しています。その会はプログラマの方が多いため、技術系の話題でAdvent Calendarが書けないかと思い付いたのがこのラテン語Advent Calendarです。
大学生時代にヨーロッパ言語の学習をソフトで補助できないかということに興味を持って、Visual Basicでアプリを作ることにハマっていました。
メインマシンのハードディスクがクラッシュしたため当時作っていたアプリの大半は散逸しましたが、ホームページ(既に閉鎖)で公開していたものだけはいくつか残っています。ソースを公開していたのが幸いでした。当時はまだオープンソースという言葉がありませんでしたが、みんなでプログラミングするためにはソースを融通し合うべきであると独自に考えていたような気がします。
使い始めた当初のVBはバージョン2でしたが、2→4→5とアップデートしていきました(3が欠番なのは日本で販売されなかったため)。それ以降はFreeBSDに乗り換えてC++を使い始めたため、今でも根強く使われているVB6は使いませんでした。Windowsでは本格的にC++を使うことはなかったため、MFCも覚えず仕舞いでした。
実行できない!
その中にラテン語の活用形を検索するアプリがあります。VB5でビルドしたEXEが残っています。しかしVB5のランタイムがないと実行できません。VB5のCD-ROMがどこかに行ってしまったため、リビルドすることもできません(捨てていないので探せばあるはずですが)。
当時はリビルドすれば良いと軽く考えていたためインストーラを作りませんでしたが(インストーラには自動でランタイムが含まれます)、こういう事態になるのならインストーラ付きで残しておけば良かったと後悔しました。VBのランタイムが後付けだというのがこんな所で効いてきます。
検索するとVB5のランタイムは簡単に見付かります。
それをインストールしても「'COMCTL32.OCX' が適切に登録されていません」というエラーです。オプションのコンポーネントを使っているため、それを含むランタイムでないと実行できないという罠です。
さらに探すと、それだけを含むランタイムが見付かりました。
期待しつつ実行すると今度はDAO(データベース関係のコンポーネント)がないというエラーです。ラテン語のデータをMDBファイル(Accessのデータベース)に入れていたので、それを処理するために必要でした。
DAOを検索してインストールします。
これでようやくソフトが起動しました!
当時は意識していませんでしたが、結構オプションのコンポーネントを使っていたようです。ランタイム地獄になってしまいました。
この続きはまた後日改めて書きます。