なぜRuntimeが必要か?

このQ&Aのポイント
  • ランタイムとは各種コントロールを内包したファイルであり、VBアプリケーションには必須となっています。
  • ランタイムを外部プログラムとして提供する理由は、共有ファイルの増加を避けるためであり、一部のユーザーはDLL・OCX拒否症の可能性があります。
  • コントロールを含めてEXEファイルに内包することで、シェアウェア作者はVB6ランタイムの必要性を説明する必要がなくなります。
回答を見る
  • ベストアンサー

なぜRuntimeが必要か?

なんか、今更な質問で気恥ずかしいのですが……、 VBアプリケーションに必須の各種依存ファイルについてです。 自分的には 「依存ファイル=Runtime=各種コントロールを内包したDLLやOCX」 といった理解をしているのですが(既に違っているかも 汗) では、なぜ外部プログラムとして提供するのでしょう? Windowsユーザーには「1つでも共有ファイルは増やしたくない」という DLL・OCX拒否症の人が結構いると思います。 CONPILE時に、コントロールも含めてEXEファイルに内包すれば、 シェアウェア作者の方々も 「このプログラムを使うときにはVB6ランタイムをベクターから云々」 なんて注意書きをいちいち書く必要がなくなると思うのですが……。

質問者が選んだベストアンサー

  • ベストアンサー
  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.3

Runtimeの理解としてはソレでOKだと思います。 但し、これらをリンクして1つの巨大ファイルにしちゃうと配布時に大変じゃないですか?それに既にDLLが入っていたりする場合は、二重に機能を持つことになって、無駄になっちゃうんですね。 で、それがイヤならCとかC++でプログラムを作ればいいのですが、これも場合によっては共有ファイルが必要な場合があります。もうこれはWindowsのというかWindowシステムを持つOSの宿命ですかね。 VBから他の言語に移るなら Delphiなんかがオススメですかね。かなり似た感じです。ObjectPascalなので全く同じというわけではありませんけどね。

k_o_j_i
質問者

お礼

他の方々の回答でもありましたが、 やはり共通の機能を持ったモジュールは共有ファイルとして 提供して、配布ファイルを小さくする、というのが最大の理由 のようですね。 共通機能をRUNTIMEとして提供するか、EXEファイルに統合するかを コンパイル時に選べるようにして欲しいですね。

その他の回答 (3)

  • cocky
  • ベストアンサー率57% (232/402)
回答No.4

「DLL・OCXを減らしたければVC++を使え」という、Microsoftの営業政策的な部分も多分に含まれているのではないかと思いますが。 VC++にもMFCxx.DLLのような、VBにおけるRuntimeに相当するDLLは存在しますが、VC++(ただしProfessional Edition以上)であればスタティックリンクで、その機能をexeの中に取り込むこともできますし。

k_o_j_i
質問者

お礼

>VC++にもMFCxx.DLLのような、VBにおけるRuntimeに >相当するDLLは存在しますが そういえばありますね。 >VC++(ただしProfessional Edition以上)であれば >スタティックリンクで、その機能をexeの中に取り込むこともできますし こういう機能はVBにも欲しいですね。 個人的にはVBという言語はユーザーも多く、簡単に(単純なものなら) Windowsアプリケーションが作成できる、という点で気に入っているのですが、 依存ファイルについてはメリット(配布サイズを小さくできる) デメリット(共有ファイルのバージョン違いによる不具合等々)両方 あると思うのですが…… >Microsoftの営業政策的な部分も多分に >含まれているのではないかと思いますが そうなんですか? Microsoftは基本的にBasic処理系一押しかと 思ってました(WSHやVBscript・VBA・ActiveX Controlなど)

  • denden_kei
  • ベストアンサー率23% (542/2278)
回答No.2

VBを使っています(配布できるほどのプログラムはありませんが...)。 VBはマイクロソフトのユーザー用公式言語(?)なのですからWindowsに標準でランタイムを入れておいてほしいですね。 Windowsのここまでのシェア拡大には、VBが大きな役割を果たしていると思います。最近はやりのLi**xにはVBがないですから。 ただ、パソコンをそこそこ使っている環境の場合、たいていランタイムを入れてあるので、それぞれのプログラムが小さくなる分利点があると思います。

k_o_j_i
質問者

お礼

>Windowsに標準でランタイムを入れておいてほしいですね。 Windows98にはVB4までのランタイムは入っているようですが、 VB自体も頻繁にバージョンアップ(サービスパックも含めて)を 繰り返すので、とてもついていけてないみたいですね。 せめて上位互換でもあればいいのですが…… >パソコンをそこそこ使っている環境の場合、 >たいていランタイムを入れてあるので、それぞれのプログラムが >小さくなる分利点があると思います たしかにそうですね。会社のPCなど「いつのまにやら」 入っていることがあります(これはこれで恐いですが)

  • renton
  • ベストアンサー率34% (1720/4934)
回答No.1

VB6ランタイムを必要とするプログラムは、VBの機能を使用したプログラムなので、それがないと動かないということではないでしょうか? VBは知りませんが、Builderも同様なことがいえます。 BuilderのDLLの機能を利用したプログラムを作るとBuilderが入っているPCでしか動かないプログラムができてしまうので、初めからそのDLLなどを利用せずに作る必要があります。 ネットで配布する場合、プログラムのデータ量が大きくなるとアップロードもダウンロードも大変になるので、別途配布するのが良いのでは?

k_o_j_i
質問者

お礼

ご回答ありがとうございます。 VBの場合、「必ず必要」というのが厄介なんですよね。 どんなに小さくて単純なPGMでも、それを使うために 1MB以上もあるランタイムのダウンロードを強要させられる……。

関連するQ&A

  • VB/VCランタイムについて

    ファイル名一括変換というフリーソフトを使おうとしたら "Component 'MSCOMCTL.OCX' or one of its dependencies not correctly registered: a file is missing or invalid" と出てきて起動しませんでした。 検索したらMSCOMCTL.OCXが無いから、Vectorサイトから『XTRM Runtime』でVB/VCランタイムをまとめてインストールしたら良いと書いてありました。 しかし私のパソコンにはVB/VCランタイムでインストールされているものがすでにいくつかあるようです。 『XTRM Runtime』ですでにインストールされているVB/VCランタイムをまたインストールみたいになったら何か問題は起きますか? Windows10 64bitです。宜しくお願いします。

  • VB.NET で作られたソフトを動かすのに必要なモノは?

    つい3日前から購入したばかりのVB.NETの勉強を始めました。 まだ習得しきってない段階で、先走りかもしれませんが、 モヤモヤと気になることがあるので質問いたします。 (私はVB5の素人プログラマでした。VB6は知りません) VB関連のランタイムを集めているたとえばこんなサイトが あります。 http://www.vector.co.jp/vpack/filearea/win/util/runtime/index.html ん~!?「NET用」のDLLとかランタイムが無いではないか? VB5の配布時に使っていた「セットアップ・ウィザード」に該当する 機能も、NETに見いだせません。(見落としているんでしょうか?) つーことは....VB.NETで作ったエグゼファイルは、 単独で動作するもんなんでしょうか? 「MSネット環境では動作する」という場合、それってどういう 環境なんでしょうか? プログラムを公開するページで、 コンピュータに私以上に詳しくないユーザーに、何を求めれば いいのでしょうか? (OS環境や必要なランタイムをどう説明すればいいのでしょうか?)

  • VB4のWin2000、WinXP対応

    VB4で作成したプログラムがWin2000やWinXPで実行できないようで 私もそのような環境を持ち合わせておらず困っています。 DLLファイルかOCXファイルの読み込みの際にエラーが起こるようなのですが 下記のファイルが各OSに対応しているかどうかおわかりになる方おられますか? もしくはファイルをいれる場所が悪いのでしょうか? また、対応させる手段はありますか? 1.VB4JP32.dll 96/03/09 2.VB40032.dll 96/01/12 3.MSCOMM32.ocx 98/06/24 4.COMCTL32.ocx 98/06/24 5.RICHTX32.ocx 96/03/09 6.TABCTL32.ocx 96/09/04 どうかよろしくお願いします。

  • VB6のランタイムについて

    VB6のランタイム配布について質問があります。 下記コントロール、またはDLLをVB6ランタイムが入っていない環境にインストールしようとした場合、ランタイム配布は必要でしょうか? 1.ActiveXコントロール(いわゆるユーザコントロール) 2.ActiveX.DLL(当DLLはCからCALLします)

  • VB6 でランタイムのエラー?

    MS VB6 を起動したところ、 「コンポーネント mscomctl.ocx またはその依存関係のひとつが適切に登録されていません。 ファイルが存在しないか、あるいは不正です」 というエラーが出て、VBが起動できません。 ネットで調べてみたら、ランタイムを再度インストールすればいいようなことが書かれていましたが、 実際のところどうなのでしょうか? SP3用のランタイムって入手可能でしょうか? 全然分からないので、よろしくお願いします。 ちなみに Windows Xp VB6 (SP3) です。

  • J2SDK1_4_2_08(Runtimeなし)+JRE1_5_0_02の組合せで問題なし?

    Java 2 SDK Ver1.4.2_08(j2sdk-1_4_2_08-windows-i586-p.exe)をダウンロードし、インストールしたところ、しばらくするとランタイムのアップデートの通知が来ました。 そのランタイムをインストールしてみると、J2SE Runtime Environment 5.0 Update 2がインストールされました。 コントロールパネルより、「プログラムの追加と削除」を実行してみたところ、ランタイムにかなりの容量が使用されているので、Java 2 SDK Ver1.4.2_08に入っていた方のランタイム「Java 2 Runtime Environment, SE v1.4.2_08」を削除しようと思っています。 しかし、Javaのコンパイルや動作に影響が出ると困るかななんて思っています。「J2SE Runtime Environment 5.0 Update 2」がインストールされていれば「Java 2 Runtime Environment, SE v1.4.2_08」は削除しても問題ないんでしょうか? それとも両方ともランタイムを入れておくべきなのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • VB6ランタイム

    最近インストールしたフリーソフトには、 TABCTL32.OCX・MSCOMCTL.OCX というファイルも同梱されており 一緒にインストールされます。 場所は、C:\WINDOWS\system32です。 TABCTL32.OCX・MSCOMCTL.OCX は、VB6ランタイムのファイルですが、 バージョンを調べるとかなり古いものでした。 VB6ランタイムは、過去のバージョンも含め脆弱性はありませんか。 よろしくお願いします。

  • VB6のランタイム

    いろんなHPで、VB6のランタイムをダウンロードして、 セットアップしたのですが、正しく動作しないのですが 全ての機能(DLL・OCX等)があるHPはないのですか? もしなけらば作成方法を教えてください。 VB6のCDにありますか?

  • EXEから言語を取得

    フリーウェア、シェアウェア、いろいろありますが、それらが何の言語で作られたか調べる方法ありますか? 作者に聞けばよいのですが、実行ファイルから簡単にわかれば、それを試したいと思っています。 VB, VC++, ... いろいろありますよね~。

  • OCXをサポートしている開発環境?

    こんばんは。 こんなことみなさんに尋ねたら笑われてしまうかもしれませんが、 OCXファイルっていうのは具体的にはどういったものなんでしょうか? DLLファイルとどう違うのですか? プログラム言語で「OCXをサポートしている開発環境」に VBがあることは何となく分かるのですが、 他の言語はどうなんでしょうか? たいていの言語はサポートしているんですか? どうかよろしくお願いします。m(_ _)m

専門家に質問してみよう