- ベストアンサー
Windows64BitOSでVB5.0のPG起動
- Windows7 64Bit環境でVB5.0で作成されたプログラムを起動するための対応方法とは?動作の制約事項も確認しましょう。
- Windows7 64Bit環境で動作させるためには、プログラム互換ウィザードの設定が必要です。また、64ビットでの動作を可能にするためには、WOW64という仕組みが使用されます。
- VB5.0のプログラムをWindows7の64ビット環境で動作させるための対応方法と、WOW64という仕組みについて詳しく解説します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
解釈が正しくないですね。 正確には、前提条件として「動かない」が、例外として「動く場合もある」というのが正しい解です。 マイクロソフトでは、Windows 7でのVB5.0アプリケーションについて一切の動作を保証していません。 また、VB6.0についても、APIは大方実装されていますが、動作の保証を行っていません。 即ち、VB5.0は動けばもうけもの。VB6.0は一応動く仕組みはあるが、動かない場合があっても、何らかの対処方法を説明することはないというスタンスです。ただし、VB6ベースのコードは、.最新のVBでコードのアップグレードを行なえば、ある程度は自動で最新コードへの最適化が可能です。(ここで最適化が行えない部分に、Windows7 64bit環境で実行に沿わないものが含まれます) そのため、1に関しては、制約も何もなく、動かない前提で動かすべきということになります。 VB6ベースの場合は、動く前提ではあるが、特定のカーネルドライバを直接キックしたり、自ら設計した独自のAPIを利用する場合は、動作しません。尚、16bitベースのコードは64bitOSでは全面的に(全て)動作しません。 2について、Windows On Windows 64(Bit)は、VB6.0より後に提供されるWin32の共通参照関数群(DLL、OCX)のAPIを、64bitの代替APIに割り当てて実行できます。具体的に言えば、AというAPIがあったとしたら、そのAというAPIと同じ役割を持つ64bitAPIに処理を引き継がせ、処理を実行します。また、独自APIであってもハードウェアに依存しない程度で、ユーザーモードの範囲内で計算などを行うなら引継ぎなしに実行が可能です。 しかし、先に記載したように、Windows 64bitが保持しているライブラリに存在しない外部APIを利用している場合、既に64Bitでは廃止された16bitAPIを利用する場合、カーネルモードで直接ハードウェアをコールすような素行の悪いプログラムやライブラリ、脆弱性やパフォーマンスの問題などによって引継ぎが出来なかったAPIを利用する場合は全て動作対象外となります。 尚、これはVB5におけるルールではなく、VB6より後のバージョンにおける条件です。尚、例外に関するルールが明確に開示されているわけではないので、抽象的な回答であることはご了承ください。 ということです。 個人的な回答をすると、基本的にVB6以前のコードは、設計されたソースがあるなら、最新のVisual Studioにてコードをアップグレード(機械最適化)してみることをお奨めします。それで、適正ではないと判断された箇所については、手作業で最新VBベースソースに修正するのがベストです。 全体的にNGになる場合は、今後も踏まえ設計からやり直した方が良いと思われます。
その他の回答 (3)
- wormhole
- ベストアンサー率28% (1626/5665)
>なので「とりあえず動かす」はなく、事前の見積確度が向上するような情報を頂ければ幸いです Microsoftがそもそもその手の情報を公開していないので(VB5についてはサポート切れですしWindows7での動作保証もされてないので当然のこと)、それが必要であれば自ら調査していくしかないです。 なので本来は調査作業として工数を試算すべき対象かと思います。 どこかの企業なり個人でそれらを調査し公開されてるのなら、それを利用する手もあると思いますが少なくとも私は存じません(私が知らないだけという可能性は大いにありえます) また仮に存在しても検証作業は必要かと思います。 質問内容の(2)についてですが、実行ファイルに32bit版などの各種情報が埋め込まれていますので、それで判断できます。
- todo36
- ベストアンサー率58% (728/1234)
> 私の周りではみな「動かしてみて動けば動く」との意見です はい、とりあえず動かしてみるのが先でしょう。 絶望的か、だいだい大丈夫か、とりあえず主な機能は動くといった認識を持つのが先でしょう。 選択肢としては、Windows7 XPモードも考えられます。
- SherlockHolmes2
- ベストアンサー率40% (175/429)
VB5自体が、とっくにマイクロソフトのサポートを終了していますので、「動かしたいのであれば、全て自己責任でどうぞ。」という事です。
補足
ご回答いただき有難うございます。 サポート終了の件、認識していますが「ランタイムの動作保証」はWindows8でも保証するとの情報があります。となると賛否両論ありますが、VB5のシステムを延命する選択肢を無視できずにおります。 どうせならWindows7で動かなくなってしまえば悩まずにすんだのですが・・・・ その上でご質問の件につきましてお知恵を拝借できないでしょうか
補足
ご回答感謝いたします。 この質問に至った経緯を追記させて頂きますので、お時間あればご一読いただきご回答いただけると幸いです。 私の立場:社内情報システム部社員 最終目的:今期に必要な開発予算を試算する 実作業者:社内SE及びPG となり作業実施する前に大まかな工数を試算したくこの質問に至っております。 なので「とりあえず動かす」はなく、事前の見積確度が向上するような情報を頂ければ 幸いです