none
.exe ファイルなら他の新しいコンピューターにダウンロードしても動くと思っていたのですがMicrosoft Visual Basic 6.0 でコンパイルしたプログラムにエラーが出て使えません。古いプログラムを最近の環境下で動かすことが出来るようにできるしょうか、対処方を教えてください。古いプログラムをVisual Basic 2010 express 上で修正しようとしたのですがコード、フォームとも表示できません。 RRS feed

  • 質問

  • .exe ファイルなら他の新しいコンピューターにダウンロードしても動くと思っていたのですがMicrosoft Visual Basic 6.0 でコンパイルしたプログラムにエラーが出て使えません。古いプログラムを最近の環境下で動かすことが出来るようにできるしょうか、対処方を教えてください。古いプログラムをVisual Basic 2010 express 上で修正しようとしたのですがコード、フォームとも表示できません。

    Microsoft visual basic においては .exe ファイルを他のコンピューターに移した場合、エラーが出て動かないことがあることは公表して欲しいとおもいますが、どうでしょうか。

    2013年10月6日 3:26

回答

  • Windows Vista 以降の OS に関しては こういった声明が出されています。
    それ以前の OS に関してはランタイムが入っていないこともありうるとは思いますが、実行環境を明示されていないので何とも言えません。

    プログラムの実行にはランタイムのほかに、使用している ActiveX コントロール、DLL などのコンポーネントが必要な可能性があります。
    その場合、exe だけをコピーするのでは動かない可能性がありますが、認識されていますか?
    以前のマシンではたまたま入っていて動いたかもしれませんが、本来はあなたが必要なコンポーネントの抽出をする必要があるので、他者に責任転嫁する前に、他の DLL、ActiveX に依存していないことを点検しましょう。
    コンポーネントの問題がなくとも、あなたのアプリケーションの作りによっては動かないことがあり得ますが、原因を第三者が予想することは困難ですので地道にデバッグするか、調査するかしていただくしかありません。。。

    なお、Visual Basic.NET(2002, 2003, 2005, 2008, 2010, 2012 など)は、Visual Basic 6.0 と土台が違いますので、変換するだけではまず動きません。
    変換した上で最近の .NET のお作法に沿った形に作り替えていく必要がありますし、.NET Framework が実行環境に必要になります。
    変換したコードも表示できないとなると、何らかの問題が生じている可能性がありますが、変換時に警告・エラーなど表示されなかったのでしょうか。

    2013年10月6日 4:08
    モデレータ

すべての返信

  • Windows Vista 以降の OS に関しては こういった声明が出されています。
    それ以前の OS に関してはランタイムが入っていないこともありうるとは思いますが、実行環境を明示されていないので何とも言えません。

    プログラムの実行にはランタイムのほかに、使用している ActiveX コントロール、DLL などのコンポーネントが必要な可能性があります。
    その場合、exe だけをコピーするのでは動かない可能性がありますが、認識されていますか?
    以前のマシンではたまたま入っていて動いたかもしれませんが、本来はあなたが必要なコンポーネントの抽出をする必要があるので、他者に責任転嫁する前に、他の DLL、ActiveX に依存していないことを点検しましょう。
    コンポーネントの問題がなくとも、あなたのアプリケーションの作りによっては動かないことがあり得ますが、原因を第三者が予想することは困難ですので地道にデバッグするか、調査するかしていただくしかありません。。。

    なお、Visual Basic.NET(2002, 2003, 2005, 2008, 2010, 2012 など)は、Visual Basic 6.0 と土台が違いますので、変換するだけではまず動きません。
    変換した上で最近の .NET のお作法に沿った形に作り替えていく必要がありますし、.NET Framework が実行環境に必要になります。
    変換したコードも表示できないとなると、何らかの問題が生じている可能性がありますが、変換時に警告・エラーなど表示されなかったのでしょうか。

    2013年10月6日 4:08
    モデレータ
  • VB6.0であっても、元よりランタイムのインストールは必要だったはずですが。単に昔のことなのでインストールしたことを忘れてしまったのはありませんか? Visual Basic 6.0 SP6 ランタイムライブラリみたいな怪しいソフトは当時から出回っていましたし。

    マニュアルを確認し、アプリケーションの配置方法について調べるといいでしょう。 

    なお、例示のためにリンクを貼りましたがこれのインストールを推奨するつもりはありません。正式な方法でインストールを行うべきであり、Microsoft社以外から配布されるランタイムは使うべきではないです。

    2013年10月6日 4:31
  • すみません。まず、モデレータとしてお願いしますが、スレッドのタイトルは、できるだけ簡潔でわかりやすく書いていただけると助かります。今回の場合ですと、例えば、「VB6でコンパイルしたexeファルイを新しいコンピュータにコピーしても動きません」というような感じです。
    また、動かない場合でも、動かないという結果だけを書くのではなく、どのような環境でどんなエラーメッセージが表示されるのかなど、どのように動かないのかを書いていただけると、より的確な回答がより早く付く可能性が高まります。

    さて、exeファイルが正常に動作するためには、正常に動作するための環境が用意されていなければなりません。例えば、フィギュアスケートの選手(exeファイル)が、ある町(コンピューター)に行ってフィギュアスケートをしようとしても、スケートリンク(exeが動作するために必要な環境)が無ければ無理です。
    セットアップ(インストーラー)は、選手(exeファイル)をある町(コンピューター)に派遣し、スケートリンク(exeが動作するために必要な環境)を建設するところまでやってくれるのです。
    また、フィギュアスケートの選手がある町に行って講演をすることは、フィギュアスケートの選手だけその町に行くだけで行えます。このようなケースでは、exeファイルを他のコンピューターにコピーするだけで動作します。

    アンインストールも合わせて考えてみるとわかりやすいと思います。exeファイルを消すだけでは、それを実行するための環境、レジストリなどが、もう使いもしないのにゴミとして残ってしまうことが多々あります。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2013年10月7日 1:01
    モデレータ
  • uenoki さん、こんにちは
    フォーラム オペレーターの星 睦美です。

    今回は参考になったと投票いただいたAzulean さんの返信に、私のほうで[回答としてマーク] させていただきました。

    これからもフォーラムで役立つ回答がありましたら、ぜひ投稿者からの[回答としてマーク]をお願いします。


    フォーラム オペレーター 星 睦美 - MSDN Community Support

    2013年10月16日 1:39