質問: vb6.0で作成したexeファイルが他のpcではエラーが発生して動きません はじめまして。 色々検索してみたのですが、なかなか見つからなかったのでお力を貸していただければと思います。 仕事でvb6.0でつくられたプログラムがあります。 最初は別の方(仮にaさんとします)が作ってくださり、いつもそのexeファイルをもらって仕事をしておりました。 この度、私がそのプログラムを修正し、exeファイルを作成したところ、自分のpcでは問題なく動くのですが、他のpcで使用しようとするとエラーが発生して動きません。 プログラムはvb6.0で、指定したエクセルファイルを開いて参照し、データと照合させるものです。 aさんのpcのosはwinxpです。 aさんが作ってくれたexeファイルはコピーして、win95/win98/winxpで問題なく動作することが出来ました。 しかし私が修正し、作成したexeファイルはosは関係なく自分のpc以外ではエラーが発生してしまいます。ちなみに自分のpcもwinxpです。 エラーは「不正な処理をしている為、このプログラムを終了します」という様なものです。 エクセルを参照しようとすると、発生するエラーなので、そのときだとは思うのですが、デバックしようにも、自分のpcでは問題なく動いてしまうので、どうにも出来ません。 よろしくお願い申し上げます。
回答: 何かのコンポーネントで使うライブラリを「実行時に動的にロードして使用」にしているのかも。 aさんは、すべてのコンポーネントを「実行ファイルに含める」にしているので、何も入れてない、どのpcでも動く。 質問者さんが書き換えた場所で使うライブラリを「実行時に動的にロードして使用」にしていると「vbのランタイムライブラリをインストール済み」のpcでしか動かなくなる。 「vbの開発環境がインストール済み」であれば「vbのランタイムライブラリもインストール済み」なのは確実。 「vbのランタイムライブラリがインストールされてないpc」で実行すると、ライブラリを使おうとしてもライブラリのロードと初期化に失敗する。 プログラムが「ライブラリのロードと初期化に成功したか?」をチェックせずに、失敗時にも成功したつもりでライブラリの関数を呼び出すと、当然 >エラーは「不正な処理をしている為、このプログラムを終了します」という 結果になるのは明白。 つまり >自分のpcでは問題なく動くのですが、他のpcで使用しようとするとエラーが発生して動きません。 って状態になる訳。 実行ファイルを作成する際の、ライブラリオプションを良~く確認しましょう。