付録.Visual Basic 4.0 への移行の手順


ここの見出しの一覧

16 ビット版の Visual Basic 4.0 への移行の手順/32 ビット版の Visual Basic 4.0 への移行の手順/16 ビット版と32 ビット版の両方で使えるソースプログラムにするには


ここには、Visual Basic 2.0 で開発したアプリケーションを Visual Basic 4.0 に移行する手順が書いてあります。Visual Basic 2.0 と eee MANDALA を併用して開発したアプリケーションの移行の手順については、「eee MANDALA入門コースの手引き」 を参照してください。

Visual Basic 4.0 には、16 ビット版と 32 ビット版の2種類があります。どちらに移行するのかによって、少しばかり手順が異なりますから、それぞれを分けて説明します。以下の説明と合わせて、Visual Basic の 「プログラミングガイド」 の他のバージョンとの互換性の説明も参照してください。

なお、16 ビット版の Visual Basic 4.0 で開発したアプリケーションは、Windows 3.1、Windows NT、Windows95 のいずれでも動作させることができます。32 ビット版の Visual Basic 4.0 で開発したアプリケーションは、32 ビット OS (即ち Windows NT 3.51 以降または Windows95) だけでしか動作させることができませんが、32 ビットネーティブの高性能を享受することができ、更にインプロセス OLE サーバなどの 32 ビット版の固有機能を用いることができます。

[16 ビット版の Visual Basic 4.0 への移行の手順]

次の手順に従って移行してください。16 ビット版の Visual Basic 4.0 は、基本的には上位互換があるので移行作業は比較的に簡単です。


(1) バックアップ

先ず最初に、移行前のプログラム資産のバックアップを取ってください。プロジェクトファイルフォームモジュールコードモジュールなど全てのバックアップを取るわけです。

Visual Basic 4.0 の資産に変換した後で、何らかの都合で元の資産に戻したいと思っても、それをすることは極めて面倒ですから、ここでバックアップを取っておくことをお勧めいたします。


(2) 資産の変換

Visual Basic 4.0 で、旧プロジェクトを開いてください。この操作に引き続いて、Visual Basic からの問い合わせに答えることで、旧資産を新形式の資産に変換することができます。


(3) プロジェクトファイルの拡張子の変更

プロジェクトを開くことができたら、名前を付けてプロジェクトの保存という操作を行って、プロジェクトファイルの拡張子を MAK から VBP に変更することをお勧めいたします。例えば、元の名前が ABCDEF.MAK というプロジェクトファイルであれば、ABCDEF.VBP という名前を指定して拡張子を変更するわけです。なお、この操作によって、新形式の資産 (変換処理がなされたファイル) も同時に保存することができます。

Visual Basic 4.0 では、プロジェクトファイルの拡張子は VBP にすることが標準ですから、このようにすることをお勧めいたします。

そして、この後で MAK という拡張子のプロジェクトファイルは削除してしまった方がよいでしょう。旧資産が混在していると混乱の元になることがあります。なお、ファイルを削除するには、エクスプローラまたはファイルマネージャを使用するのが普通です。


(4) 完全コンパイルの実施とエラーの修正

Visual Basic 4.0 のメインウィンドウ実行(R) というメニュータイトルを開いて、その中の完全コンパイル後に開始(F) というメニュー項目 (前述の図参照) をクリックしてください。単なる開始(S) では、動作しない部分のチェックがなされませんから、必ず完全コンパイル後に開始(F) を指定してください。

そして、エラーが通知されたら、そのエラーを修正してください。Visual Basic 4.0 は、基本的には上位互換があるので、そのままで動作するはずですが、若干の非互換点があるために、エラーが通知されることがあります。

例えば、コードモジュールのオブジェクト名とプロシージャ名が重複しているというようなエラーが通知されることがよくあります。Visual Basic 4.0 では、コードモジュールも一つのオブジェクトとみなされるようになりました。そして、そのオブジェクト名はプロシージャ名と重複してはならないことになったためです。このエラーが通知されたら、プロパティウィンドウを使用して、コードモジュールのオブジェクト名を変更してください。

また、希にプロシージャの大きさの制限にかかることがあります。基本的に制限は緩和されているのですが、プロシージャの大きさの制限は以前よりも厳しくなっています。この制限をオーバした場合には、プロシージャを分割して小さくしてください。

更に、画面の表示内容にも注意してください。フォントの関係で表示できる文字数が少なくなることがあります。全てのフォームが表示されるように動作させて、各画面の表示内容を確認してください。もしも不具合が見つかれば修正することが必要です。


(5) 新資産の保存

エラーがあれば修正して正しく動作するようになったら、プロジェクトの上書き保存(V) の指示をして新資産を保存してください。これで、移行の作業は完了です。


[32 ビット版の Visual Basic 4.0 への移行の手順]

次の手順に従って移行してください。32 ビット版の Visual Basic 4.0 は、次の (2) (3) (6) の非互換点があるので、これらへの対応を行うことが必要です。


(1) バックアップ

先ず最初に、移行前のプログラム資産のバックアップを取ってください。プロジェクトファイルフォームモジュールコードモジュールなど全てのバックアップを取るわけです。

Visual Basic 4.0 の資産に変換した後で、何らかの都合で元の資産に戻したいと思っても、それをすることは極めて面倒ですから、ここでバックアップを取っておくことをお勧めいたします。


(2) ユニコードの対応

32 ビット版の Visual Basic 4.0 は、文字列がユニコードで表現されるようになります。したがって、次の関数に非互換が生じます。

・ InStrB

・ InStrB$

・ LenB

・ LeftB

・ LeftB$

・ MidB

・ MidB$

・ RightB

・ RightB$

これらの関数を使っているところは、全て Visual Basic の文字列検索で洗い出した上で、何らかの対応を行うことが必要です。

先ず、洗い出したところのうち文字単位の処理をしている部分は、関数名から B を取り除いた関数 (例えば LeftB$ ならば Left$) に置き換えてください。そして、残りのバイト単位の処理をしている部分は、その処理内容に応じた何らかの変更が必要です。例えば、eee MANDALA の AE_PROC.BAS または AE_WID.BAS というコードモジュールの中に提供されている関数 LenWid、LeftWid$、MidWid$、RightWid$ に置き換えるのも一つの方法です。

なお、16ビット版と32 ビット版の両方で使えるソースプログラムにしたければ、16 ビット版と32 ビット版の両方で使えるソースプログラムにするにはに説明のあるようなプログラムの書き方をしてください。つまり、Visual Basic 4.0 の条件付きコンパイル機能を活用するわけです。


(3) 32 ビット対応の OCX への移行の調査

32 ビット版の Visual Basic 4.0 では、従来の 16 ビット対応の VBX は使えません。32 ビット対応の OCX に移行することが必要です。

この移行の手順については、互換性を持つ 32 ビット対応の OCX が提供されている場合には、それぞれの OCX の提供元の説明を参照してください。通常は この後の (4) の手順によって移行できるようになっているはずですから、そのことを確認してください。

互換性を持つ 32 ビット対応の OCX が提供されていない場合には、そのままでは移行できません。VBX の機能と同様のものが通常のコントロールで実現できる場合には、一旦 VBX を通常のコントロールに置き換えてください。

なお、適当なコントロール (または VBX) に置き換えることができない場合には、単純移行はできません。


(4) 資産の変換

上記の (3) までの処置を施した旧プロジェクトを Visual Basic 4.0 で開いてください。この操作に引き続いて、Visual Basic からの問い合わせに答えることで、旧資産を新形式の資産に変換することができます。


(5) プロジェクトファイルの拡張子の変更

プロジェクトを開くことができたら、名前を付けてプロジェクトの保存という操作を行って、プロジェクトファイルの拡張子を MAK から VBP に変更することをお勧めいたします。例えば、元の名前が ABCDEF.MAK というプロジェクトファイルであれば、ABCDEF.VBP という名前を指定して拡張子を変更するわけです。なお、この操作によって、新形式の資産 (前の手順で変換処理がなされたファイル) も同時に保存することができます。

Visual Basic 4.0 では、プロジェクトファイルの拡張子は VBP にすることが標準ですから、このようにすることをお勧めいたします。

そして、この後で MAK という拡張子のプロジェクトファイルは削除してしまった方がよいでしょう。旧資産が混在していると混乱の元になることがあります。なお、ファイルを削除するには、エクスプローラまたはファイルマネージャを使用するのが普通です。


(6) 32 ビット対応の DLL への移行

32 ビット版の Visual Basic 4.0 では、従来の 16 ビット対応の DLL は使えません。ですから、32 ビット対応の DLL を使うように変更することが必要です。この移行の手順については、それぞれの DLL の説明を参照してください。

Visual Basic の文字列検索で Declare という文字列を洗い出した上で、DLL の宣言の中のライブラリ名などの変更が必要です。更に、もしも DLL の呼出しインタフェースやパラメタのデータ型などが変更になる場合には、その修正を施してください。

なお、16ビット版と32 ビット版の両方で使えるソースプログラムにしたければ、16 ビット版と32 ビット版の両方で使えるソースプログラムにするにはに説明のあるようなプログラムの書き方をしてください。つまり、Visual Basic 4.0 の条件付きコンパイル機能を活用するわけです。


(7) 完全コンパイルの実施とエラーの修正

Visual Basic 4.0 のメインウィンドウ実行(R) というメニュータイトルを開いて、その中の完全コンパイル後に開始(F) というメニュー項目 (前述の図参照) をクリックしてください。単なる開始(S) では、動作しない部分のチェックがなされませんから、必ず完全コンパイル後に開始(F) を指定してください。

そして、エラーが通知されたら、そのエラーを修正してください。Visual Basic 4.0 は、若干の非互換点があるために、エラーが通知されることがあります。

例えば、コードモジュールのオブジェクト名とプロシージャ名が重複しているというようなエラーが通知されることがよくあります。Visual Basic 4.0 では、コードモジュールも一つのオブジェクトとみなされるようになりました。そして、そのオブジェクト名はプロシージャ名と重複してはならないことになったためです。このエラーが通知されたら、プロパティウィンドウを使用して、コードモジュールのオブジェクト名を変更してください。

また、希にプロシージャの大きさの制限にかかることがあります。基本的に制限は緩和されているのですが、プロシージャの大きさの制限は以前よりも厳しくなっています。この制限をオーバした場合には、プロシージャを分割して小さくしてください。

更に、画面の表示内容にも注意してください。フォントの関係で表示できる文字数が少なくなることがあります。全てのフォームが表示されるように動作させて、各画面の表示内容を確認してください。もしも不具合が見つかれば修正することが必要です。


(8) 新資産の保存

エラーがあれば修正して正しく動作するようになったら、プロジェクトの上書き保存(V) の指示をして新資産を保存してください。これで、移行の作業は完了です。


[16 ビット版と32 ビット版の両方で使えるソースプログラムにするには]

Visual Basic 4.0 の 32 ビット版に移行するときには、ほんの少しの配慮によって、16 ビット版と32 ビット版の両方で使えるソースプログラムにすることができます。こうしたければ以下のようなプログラムの書き方をしてください。つまり、Visual Basic 4.0 の条件付きコンパイル機能を活用するわけです。


#If Win16 Then

(16 ビット版固有のソースプログラムコード)

#Else

(32 ビット版固有のソースプログラムコード)

#End If

なお、eee MANDALA が機械生成した部分については、全て 16 ビットでも32 ビットでも動作するように、条件付きコンパイル機能を活用しています。ただし、In-process OLE Server (DLL) 版については、Visual Basic の制約条件のために 32 ビット環境のみのサポートとなりますので、16 ビット環境では利用できないことに注意してください。


eee MANDALA

ブラウザの戻る (Go Back) のボタンを押して元に戻るか、目次のページに戻ってまだご覧になっていないところに進んでください。

また、アプリテック株式会社のホームページhttp://www.applitech.co.jp/のこの他の情報もご覧ください。


Copyright (C) 1995-1997 By AppliTech, Inc. All Rights Reserved.
eee, SSS/Win は、ウッドランド株式会社から販売されている製品です。
MANDALA は、アプリテック株式会社の商標として登録の申請を済ませています。
Visual Basic, Windows, Windows NT は、米国マイクロソフト社の商標です。
(ME96V421)