Windows 98でVisual Basic!

福岡寿和 FUKUOKA, Toshikazu 富士通SSL

Windows 98が発売されて1ヶ月以上が過ぎた.
一般ユーザーにとっては幸せになれるOSかもしれないが,果たして開発者にとってはどうだろう.
とくにVisual Basicデベロッパーにとって,Widows 98は平穏をもたらしてくれるOSとなるのだろうか…

 

幸せへの道は

 Windows 98が発売されました.これからのプレインストールモデルには当然Windows 98がインストールされています.そこで,Visual Basic 4.0とVisual Basic 5.0それぞれの動作確認をしてみたいと思います.

 もちろん,本誌9月号の古橋本音堂“巻頭版”にあるように,Visual BasicとWindows 98の両方に含まれているファイル群が存在するので,配布は,それらのファイルを抜いた形でしか実現できません.つまり,Windows 98で作成したアプリケーションは,Windows 98が走るマシンにしか配布できないということです.

 Windows 95には開発環境でテストした上記のファイル群が存在しないか,存在してもバージョンが古いため,開発環境と同一の環境にはならないので,配布先でのアプリケーションの正常動作は誰にも保証できません.ですから,これからの話は,開発環境も稼動環境もWindows 98の場合に限定された話だと思ってください.

 そんなことを確認して,何か良いことでもあるのかと思われるかもしませんが,OSが新しくなっても開発ツールのバージョンを上げられないことが開発現場では往々にしてあります.マイクロソフトが公式に「動作保証しない」と明言してくれたらよいのですが,なかなかそういった状況は生まれません.そこで,実際に動作させてみて,また,インストールされたファイルの状態から考察してみて,Visual Basicユーザーが幸せでいられるかどうかを検討してみたいと思います.

 そう思っていたらhttp://www.microsoft.com/japan/developer/win98vs.htmに「Microsoft Windows 98へのマイクロソフト社製開発ツールの対応について」が掲載されました.内容を要約すると,

ということです.

 もうすでに暗雲立ち込めた気がします.

 とりあえず,Windows 98が一番幸せな状態で稼動するように,FAT32でフォーマットして新規インストールし,動作確認をしていきたいと思います.なお,Windows 98は,MSDN Developer Platform for East DISC19 July,1998を使用しました.

 

Visual Basic 4.0
ユーザーは幸せか?

 マイクロソフトのWebページに「Visual Basic 4.0開発環境(16ビット版,32ビット版共)は,Windows 98環境上では使用しないでください」と書かれてしまったので,もうすでに“幸せではない”と結論が出てしまった感もありますが,とりあえずインストールしてみます.

Visual Basic 4.0 Pro版
Visual Basic 4.0 Enterprise版(Update)
Update1
Update2

の順番でインストールしました.

 その結果,リスト1のファイルが,Visual Basic 4.0の再配布可能ファイルよりもWindows 98の方が日付が新しいことが判明しました.また,新たなOCXも含まれています(リスト2).

リスト1:Windows 98で更新されているVisual Basic4.0再配布可能ファイル リスト2:Visual Basic 4.0では再配布権限がないOCX

COMCTL32 OCX       604,432  98-06-12  20:01 COMCTL32.OCX
CTL3D32  DLL        45,056  98-06-12  20:01 CTL3D32.DLL
MFC40    DLL       933,888  98-06-12  20:01 MFC40.DLL
MFC40LOC DLL        40,960  98-06-12  20:01 MFC40LOC.DLL
MSVCRT20 DLL       274,432  98-06-12  20:01 MSVCRT20.DLL
MSVCRT40 DLL       344,064  98-06-12  20:01 MSVCRT40.DLL
ODBCJT32 DLL       245,760  98-06-12  20:01 ODBCJT32.DLL
OLEPRO32 DLL       126,976  98-06-12  20:01 OLEPRO32.DLL

AMOVIE   OCX       167,184  98-06-12  20:01 AMOVIE.OCX
ASCTRLS  OCX        91,056  98-06-12  20:01 ASCTRLS.OCX
BR549    OCX        35,328  98-06-12  20:01 BR549.OCX
EYEDOG   OCX       168,960  98-06-12  20:01 EYEDOG.OCX
HHCTRL   OCX       378,880  98-06-12  20:01 HHCTRL.OCX
IELABEL  OCX       129,264  98-06-12  20:01 IELABEL.OCX
IEMENU   OCX        73,472  98-06-12  20:01 IEMENU.OCX
IETIMER  OCX        77,728  98-06-12  20:01 IETIMER.OCX
MARQUEE  OCX        75,520  98-06-12  20:01 MARQUEE.OCX
PLUGIN   OCX        83,776  98-06-12  20:01 PLUGIN.OCX
TDC      OCX        73,120  98-06-12  20:01 TDC.OCX
DAXCTLE  OCX       150,528  98-06-12  20:01 DAXCTLE.OCX
HHOPEN   OCX        20,992  98-06-12  20:01 HHOPEN.OCX
IMGADMIN OCX       106,496  98-06-12  20:01 IMGADMIN.OCX
IMGEDIT  OCX       331,776  98-06-12  20:01 IMGEDIT.OCX
IMGSCAN  OCX       121,856  98-06-12  20:01 IMGSCAN.OCX
IMGTHUMB OCX       115,712  98-06-12  20:01 IMGTHUMB.OCX
MMEFXE   OCX       156,160  98-06-12  20:01 MMEFXE.OCX
PROCTEXE OCX        70,144  98-06-12  20:01 PROCTEXE.OCX
WSHOM    OCX       132,368  98-06-12  20:01 WSHOM.OCX

 インストールは無事終了することができるようなので,付属サンプルを一通り動作させてみたところ,操作性がWindows 98ライクになってしまったこと以外は,とりあえず動作はしているようです.しかし,データマネージャの機能を一通り動作させて終了させるとページ違反で落ちてしまう(図1)ので,DAOまわりは結構危ないかもしれません.

 つまり,ランタイムモジュールの互換性の問題があるときは,このように一見正常に動作しているようで,実は綱渡り的に動作していることを意味しています.

図1:データマネージャのページ違反

【結論】
“Windows 98を取るかVisual Basic 4.0を取るか,二者択一が必要である”

 

Visual Basic 5.0
ユーザーは幸せか?

 Visual Basic 4.0と異なり,Visual Basic 5.0では,開発環境,実行環境共に大きな問題は発見されていないようです.

 しかし,
Visual Basic 5.0 Enterprise版
SP3
の順番でインストールした後に,Webページに掲載されているように,

  1. Visual Studio 97 Service Pack 3(もしくは,Visual Basic 5.0 Service Pack 3)をインストールします.
  2. Visual Studio 97 Service Pack 3(もしくは,Visual Basic 5.0 Service Pack 3)の\ALL\VB\OS\SYSTEM\Comctl32.depをWindowsのSystemフォルダにコピーします.
  3. Visual Studio 97 Service Pack 3(もしくは,Visual Basic 5.0 Service Pack 3)の\JPN\VB\OS\SYSTEM\Cmctljp.dllをWindowsのSystemフォルダにコピーします.
を実行しました.

 しかし,リスト3のファイルについては,Windows 98の方が日付が新しいことが判明しました.
  リスト3:Windows 98で更新されているVisual Basic 5.0再配布可能ファイル
 

ASYCFILT DLL       131,072  98/06/12  20:01 ASYCFILT.DLL
COMCTL32 DLL       604,432  98/06/12  20:01 COMCTL32.DLL
MFC42    DLL       954,128  98/06/12  20:01 MFC42.DLL
MSVBVM50 DLL     1,355,776  98/06/12  20:01 MSVBVM50.DLL
OLEAUT32 DLL       503,808  98/06/12  20:01 OLEAUT32.DLL
OLEPRO32 DLL       126,976  98/06/12  20:01 OLEPRO32.DLL
STDOLE2  TLB        16,896  98/06/12  20:01 STDOLE2.DLL
VB5JP    DLL        81,946  98/06/12  20:01 VB5JP.DLL

 ここでの最大の問題点は,MSVBVM50.DLLとVB5JP.DLLというVisual Basic 5.0のランタイムルーチンそのものが更新されている点です.

[本誌掲載後に判明した追加情報]
Windows 98に添付されているVisual Basic 5.0のランタイムルーチンは,Windows 98に最適化するために,ファイルサイズが変更されているだけの,Visual Basic 5.0 SP2相当品だそうです.ファイルサイズのみかは,確認の取りようがないのですが,SP2相当品ということは,SP2が当たっていないVisual Basic 5.0開発環境で作成した配布ディスクからはインストールできなかったり正常動作しないことを意味しています.

 考えられる理由とそれの影響としては,

が考えられます.どちらにしても,あまり良い状況とは言えません.

【結論】
“Windows 98が絡んできたときにVisual Basic 5.0ユーザーが幸せになるには,Windows98で開発して,Windows 98で実行するようにしていく必要があると思われる”

 

なぜ,
新しいツールが必要か

 ツールは,特定のOSをターゲットとして開発されてきます.ですから,ターゲットとしたOSに悪影響を与えるわけにはいかないので,十分な検証が行なわれている可能性があります.

 しかしOSは,前バージョンとの互換性と差別化には注意を払っているでしょうが,そこで稼動しているツールを含むソフトウェアすべてに対して検証を行なうのは実際不可能なことです.

 結果,OSがバージョンアップされると,そこで稼動するソフトウェアは対応版としてバージョンアップする,という関係にあります.見た目や機能はまったく変わらなくても,動作保証を得るために,開発サイドではチェックと修正を行なっているのです.そのことが,Visual Basicをはじめとする開発ツールにもあてはまってしまいます.ですから,そのツールを使って開発を行なっていくためには,新しいOSに対応したSP(サービスパック)やバージョンの登場を待つか,新しいOSの利用を待つ必要があるのです.

 このことは今に始まったことではなく,過去にも繰り返されてきました.そして,これからも多かれ少なかれ,そういったことが発生すると思われます.なぜなら,OSのバージョンアップに伴なうオフィス製品やツール製品のバージョンアップは,マイクロソフトだけが行なってきたわけではなく,汎用機の世界やUNIXの世界でも有り得た話なのです.

 しかし,なぜWindowsの世界ではこれほど問題視されるのでしょうか.それは,

  1. バージョンアップ前後の同一製品間の互換性の問題
  2. 新版“発表”後の現版障害対応が手薄になる問題(具体的にはSPの提供が望めない)
  3. OSと開発ツールの発売時期がずれる問題
などの問題が存在するからです.

 互換性問題や障害未対応の問題も確かに重要ですが,3.の問題は,開発現場でお客様のOSに対応したツールが手に入らない,という問題に発展してしまいます.それだけではなく,新しくマシンを購入し,ツールを勉強しようとしたときにうまく動作しなかったら,せっかくの意欲を大きく削がれるようなツマヅキになってしまいます.

 Windows,OfficeそしてVisual Basicの発売時期を図2のようにまとめてみるとわかるように,このような空白期間は以前にもありました.しかし,今回は,16bitから32bitへの変更や,VB5.0が発売されるまで,NT4.0で動作保証された開発ツールがなかったときよりも状況は厳しく,Windows 98プレインストールマシンに対応した開発ツールが存在しないのです.

 一刻もはやく(でも,致命的なバグの少ない)開発ツールの発売を心待ちにしています.
図 2:Microsoft製品のリリース歴

 

さてどうしよう

 私はあえて,開発ツールが出そろうまでは,Windows 98プレインストールマシンの導入を待った方がよい,と提案することにします.

 そのころまでには,Windows 98無償アップグレードのマシンが値下がりしているでしょうから,そのマシンを購入し,Windows 95で快適なVisual Basic 5.0開発を経験しておきましょう.そして,Visual Studio 6.0が発売されたら,

  1. Windows 95を立ち上げる
  2. Windows 98のCD-ROMの内容をハードディスクにコピー
  3. MS-DOSモードで立ち上げる
  4. Windows 98のSetupを起動して,Windows 95と別ディレクトリにインストール
  5. Windows 95ディレクトリを削除

として,クリアなWindows 98環境を構築して,快適なVisual Basic 6.0開発を体験してください.もちろん,Windows 95のままでVisual Basic 6.0を使うのもよいでしょう.ただし,Windows 95 + IE4.xの組み合わせよりも,Windows 98の方が安定しているのは,みなさんご存知の通りです.

 私はといえば,Oracle環境が対応されるまでWindows 98は導入しません.もっとも,モバイル用のノートPC以外はWindows NT 4.0(SP3またはOP1)の環境がメイン環境なので,今回の騒動にはあまり影響を受けていません.
 ただ,今回も含めた今までの流れから考えると,NT5.0が発売されるときには,どうしたらいいのだろうと少し不安になっているのも事実です.


VB Magazine ライブラリ | Visual Basic WorkGroup
int21 ホームページ | PCDN ホームページ


Copyright (c) 1998 PCDN All Rights Reserved.
For questions or comments, please send mail to: pcdn@int21.co.jp