新しいOS windows7でVB6は使用できるか。
私がインストールしたwindows7は
Windows 7 Professional (x86) - DVD (Japanese)
である。
Windows7のインストールに関してはまた後ほど書くとして
このブログのテーマはWindows7 で「VB6の開発環境は
動作するのか」と言うことと、「VB6ので開発した
プログラムは問題なく動作するか」と言うことについて書く。
まず開発環境のインストールからである。
Visual Basic 6.0, Enterprise Edition (Japanese), Disc 1
Visual Basic 6.0, Enterprise Edition (Japanese), Disc 2
をCDに落してインストール。
ワーニングが一回出たが無視してインストール。
特に問題はなかった。
ここで通常はMSDNをインストールするところだが、VB6が走らなければ
意味がないので、とりあえず開発環境を起動する。
起動の途中で「MSDN」が読み込めないとのエラーが出て起動
出来ない。(XPはそんなことはなかった気がする)
そこで急遽MSDNをインストールし開発環境の再起動、
今度は問題なくIDEは起動する。
そこで今までXP上で開発したVB6のプロジェクトを読み読み込ませる、
問題なく読み込んでコードを表示する。
さてここで何時も問題になるのはコードのマウスホイールに
よるスクロールである。
これは特にwindows7だからどうのこうのではなく、
トラディショナルな問題なのだが。
そこで
『Visual Basic 6.0 IDE でマウス ホイール イベントが機能しない。』
サポート オンライン
を実施する。
ところがこれが結構厄介である、まずWindow 7は「スタート」
メニューの中にデフォルトで[ファイル名を指定して実行] が無い。
このためタスクバーを右クリックして「プロパティ」を表示
その中から、『「スタート」メニュタブ』-> 「カスタマイズ」
を選んでその中の[ファイル名を指定して実行]にチェックを入れる、
これで「スタート」の中に[ファイル名を指定して実行]が表示される。
さてそこで
regsvr32 <path>\VB6IDEMouseWheelAddin.dll
を実行。
上手くいかない、まあ予想はしてましたがね。
「RegSvr32」のエラーが出る。
「モジュール"c:\......VB6IDEMouseWheelAddin.dllは
読み込まれましたが、VB6IDEMouseWheelAddin.dll への
呼び出しはエラーコード0x80004005により失敗しました。」
と出ました。
そもそもこの「VB6IDEMouseWheelAddin.dll」はVB6で作ったもの
VB6で作ったDLLは動かない場合があるのだろう、要注意。
さてそこで困った時の「
どこでもホイール 」。
これをダウンロードしてインストール。
ところがこれも訳のわからぬエラーが出て終わる。
しかしVB6のコードはちゃんとスクロールされている。(^^
つまり正常にインストールされたのです。
ここで簡単なプログラムを作成して、色々試してみたが、
VB6の開発環境(IDE)はwindows 7上でほぼ動くことを確認。
まあひと安心ではある。
次はいよいよVB6のプログラムがwindows 7上で動作するのか
ということである。
そこで私が作った「FTP忠太」というソフトを起動。
このソフトはVB6ではほぼ無理だというFTPのプログラムを
APIなどを駆使して作成したもので、私に作ったソフトの
中では最も複雑なソフトなのである。
「FTP忠太」を起動、いきなりエラー
「オーバーフロー」しましたと出る。
かなり先が暗い。
仕方なくデバッグ開始、幸いエラーの原因は直ぐわかった。
もともとFTPソフトは自分のPC(ローカルマシン)と
FTPサーバーの両方のファイルをフォルダを表示する
ファイラーが組み込んである、このローカルマシン
のファイルとフォルダを表示する場合、ファイルを
フォルダをAPIで列挙して、その属性で隠しファイル
やシステムファイルを識別し、表示または非表示
を決めているのだ。
この属性はXp等では100以下の数字で返されるのであるが、
windows 7はwindowsのフォルダーを73,744を返していた。
要するに属性を入れていた変数がIntegerで宣言
されていたためにオーバーフローしたのである。
これをLongに変えてOKとなった。
あとはすべて正常に動作した。
結論:
「Windows 7」上でVB6の開発環境(IDE)は正常に
動作すると考えて良い。
ただしVB6で作成したDLLは要注意である。
VB6で開発したソフトは簡単なものはほとんど
動作すると考えてよい。
ただし複雑なものは動かしてみなければわからない。
細かいことだが、「windows 7」は「windows」と「7」の間にスペースを
入れるのが正式である。
が、これ結構書きにくい、間が抜けてしまうのです。
で、windows7と書いてます、あしからず。
(背景の写真は
まごころうさん
からお借りしました。)