- ベストアンサー
VB4のセットアップで空き容量エラー
VB4のセットアップウィザードで作成した Setup.exeをWindowsXPへインストールするときに 「空き容量が足りません」のエラーが表示されて 困っています。 (ハードディスクの空き容量が2GB以上のときに この現象が起こります) どなたか回避策をご存知の方、ご教授願えますか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ファイルサイズは今まで2GBまたは4GBを超えるわけないと思われていましたが、今は簡単に越えています。 今はディスクサイズを調べるとき2つのLong型の変数を使いますが、昔は1つのLong型の変数で済んでいたので、それらは大変です。 2GBを超えると、VBではいきなり-2GBになってしまいますから、それでディスクがぜんぜん足りないと解釈する場合もあります。 また、たとえば4.001GBの場合、4GBはひとつのLong変数には収まらず、もう1つのLong変数のほうに入ります。 そして残りの0.001GBが通常のほうに入り、ぜんぜん足りないと解釈されます。 >会社のサーバでインストーラを作成する都合上、 サービスパックは却下されました(T_T)どうして?) 企業などの大組織では、サービスパックとかを何も考えずに入れることはできないということです。 現在のシステムが安定している場合、サービスパックをいれて不安定になった場合困るからってことです。 だから、未だにVB4を使っているのではないですか。 しかし、上司はこの現状を理解しているんですかねぇ。 これではHDDの空き容量が決まった数字のときにしかインストールできませんし。 配布や製品化するプログラムなら、大問題です。 上司を説得する、というかわからせるのがいいと思います。
その他の回答 (2)
- todo36
- ベストアンサー率58% (728/1234)
私は、残量量をチェックしている部分を取り除いています。 やっていいと思います。 Bookより SETUP132.EXE] SETUP1.VBP から作成する Visual Basic アプリケーションの実行可能ファイルです。 このソース ファイルを変更して、独自のセットアップ プログラムを作成できます。
単純に2GB以上の場合、空き容量の計算でオーバーフローを起こしているのだと思いますよ。少なくともVisual Basic 4.0の時代はFAT32はなく、HDDも2GBもあれば十分といった時代だったので。 あとは、Visual Basic 4.0のService Packをあてるとか、ランタイムのバージョンをあげて試してみるとか、だめならばインストーラ自体をほかのものに変更するなどするしか方法はないのではないでしょうか? ではでは☆
お礼
そうなんですね。。。FATって2GBまでですものね。。。 今回考えられる選択肢は、 1.上司を説得してインストーラの変更をする。 →自腹でインストーラを購入して実証して 説得することになりそうですね。。。 (会社のサーバでインストーラを作成する都合上、 サービスパックは却下されました(T_T)どうして?) 2.やっていいことかどうかわかりませんが、 VB4インストール時に付属のSetup1のソースを 改造してオーバーフローしないように作り変える。 (ホントにやっていいことかどうかわからないで 書いてるので、もし禁止事項に触れるようでしたら 申し訳ありませんがその旨を教えていただけますか) 困っちゃいました。。。
お礼
皆さん、回答ありがとうございました。 結局、下記の方法で回避しました。 1.OSの種類を判別するAPIにてWin16系OSと Win95OSR2以前とWin98系OSとWinNT系OSを区別 2.16Bitだった場合は既存のソースを実行 3.Win95OSR2未満の場合はそれに対応した APIで空き容量を取得(既存のソースを実行) 4.それいがいのOSはWin95OSR2以降で使える新しい API関数にて空き容量・ディスク容量を取得 変数は既存はLong型ですが、Double型を使用しました。 今のところ、問題はなく動いていますので ご参考までに。