- ベストアンサー
なぜRuntimeが必要か?
- ランタイムとは各種コントロールを内包したファイルであり、VBアプリケーションには必須となっています。
- ランタイムを外部プログラムとして提供する理由は、共有ファイルの増加を避けるためであり、一部のユーザーはDLL・OCX拒否症の可能性があります。
- コントロールを含めてEXEファイルに内包することで、シェアウェア作者はVB6ランタイムの必要性を説明する必要がなくなります。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Runtimeの理解としてはソレでOKだと思います。 但し、これらをリンクして1つの巨大ファイルにしちゃうと配布時に大変じゃないですか?それに既にDLLが入っていたりする場合は、二重に機能を持つことになって、無駄になっちゃうんですね。 で、それがイヤならCとかC++でプログラムを作ればいいのですが、これも場合によっては共有ファイルが必要な場合があります。もうこれはWindowsのというかWindowシステムを持つOSの宿命ですかね。 VBから他の言語に移るなら Delphiなんかがオススメですかね。かなり似た感じです。ObjectPascalなので全く同じというわけではありませんけどね。
その他の回答 (3)
- cocky
- ベストアンサー率57% (232/402)
「DLL・OCXを減らしたければVC++を使え」という、Microsoftの営業政策的な部分も多分に含まれているのではないかと思いますが。 VC++にもMFCxx.DLLのような、VBにおけるRuntimeに相当するDLLは存在しますが、VC++(ただしProfessional Edition以上)であればスタティックリンクで、その機能をexeの中に取り込むこともできますし。
お礼
>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)
VBを使っています(配布できるほどのプログラムはありませんが...)。 VBはマイクロソフトのユーザー用公式言語(?)なのですからWindowsに標準でランタイムを入れておいてほしいですね。 Windowsのここまでのシェア拡大には、VBが大きな役割を果たしていると思います。最近はやりのLi**xにはVBがないですから。 ただ、パソコンをそこそこ使っている環境の場合、たいていランタイムを入れてあるので、それぞれのプログラムが小さくなる分利点があると思います。
お礼
>Windowsに標準でランタイムを入れておいてほしいですね。 Windows98にはVB4までのランタイムは入っているようですが、 VB自体も頻繁にバージョンアップ(サービスパックも含めて)を 繰り返すので、とてもついていけてないみたいですね。 せめて上位互換でもあればいいのですが…… >パソコンをそこそこ使っている環境の場合、 >たいていランタイムを入れてあるので、それぞれのプログラムが >小さくなる分利点があると思います たしかにそうですね。会社のPCなど「いつのまにやら」 入っていることがあります(これはこれで恐いですが)
- renton
- ベストアンサー率34% (1720/4934)
VB6ランタイムを必要とするプログラムは、VBの機能を使用したプログラムなので、それがないと動かないということではないでしょうか? VBは知りませんが、Builderも同様なことがいえます。 BuilderのDLLの機能を利用したプログラムを作るとBuilderが入っているPCでしか動かないプログラムができてしまうので、初めからそのDLLなどを利用せずに作る必要があります。 ネットで配布する場合、プログラムのデータ量が大きくなるとアップロードもダウンロードも大変になるので、別途配布するのが良いのでは?
お礼
ご回答ありがとうございます。 VBの場合、「必ず必要」というのが厄介なんですよね。 どんなに小さくて単純なPGMでも、それを使うために 1MB以上もあるランタイムのダウンロードを強要させられる……。
お礼
他の方々の回答でもありましたが、 やはり共通の機能を持ったモジュールは共有ファイルとして 提供して、配布ファイルを小さくする、というのが最大の理由 のようですね。 共通機能をRUNTIMEとして提供するか、EXEファイルに統合するかを コンパイル時に選べるようにして欲しいですね。