none
vb6の開発と64bitOSへの移行に関して RRS feed

  • 質問

  • これまで、32bitのWindowsOSを対象に、vb6でソフトウェア開発を進めてきましたが、今後は64bitに移行していくであろうと予想しています。そこで、ご教示いただきたいのが、vb6の後継となるvisual studioのヴァージョンはどれになるのでしょう?

    また、vbで作成したアプリの機能としてRS232Cを用いた通信機能を搭載しております。

    vb6で作成したexeを搭載するPCには、もれなく「vb6sp6rt4.exe」というフリーソフトをインストールして

    必要なコンポーネントを追加していたようでした。64bitへの移行に伴い、RS-232C通信に必要なコンポーネントは

    どのように追加したらよいのでしょうか?

    もしご存知の方がいたら、教えてください。よろしくお願いします。
    2011年5月20日 8:13

回答

  • > そこで、ご教示いただきたいのが、vb6の後継となるVisual studioのヴァージョンはどれになるのでしょう?

    ここだけ反応しました。単純にバージョンだけで追うなら

    VB7.0 → Visual Basic .NET 2002
    VB7.1 → Visual Basic .NET 2003
    VB8.0 → Visual Basic 2005
    VB9.0 → Visual Basic 2008
    VB10  → Visual Basic 2010

    という流れになり、VB6 の次のバージョンは VB7・・・Visual Studio の製品としては Visual Basic .NET 2002 になりますが、この製品はすでに販売もサポートも終了しております。現在なら Visual Studio 2010 で開発するのが標準だと思います。

    ただし VB7.0 以降、完全に言語仕様が変わりました。正確には Visual Basic ではなく Visual Basic.NET という言語になります。VS に付属のアップグレードウィザードを使えば VB6 のコードを自動的に VB.NET に変換してくれますが、残念ながら正常に変換してくれる保証はありません。VB6 アプリを参考に一から移植し直した方がより優れたシステムに移行できる場合があります。・・・というか、むしろ推奨。

    ちなみに以下のリソースが参考になるかも知れません。
    http://msdn.microsoft.com/ja-jp/library/dd314356.aspx

    あと VB.NET 2003 の頃の記事なのでかなり古くはなってますが、VB6 からの移行のポイントを纏めた素晴らしい記事があります。http://www.atmarkit.co.jp/fdotnet/vb6tonet2/index/index.html

    VB6 → VB.NET へ移行するための簡単なポイントを纏めた記事だと、以下の記事があります。
    http://www.atmarkit.co.jp/fdotnet/chushin/greatblogentry_01/greatblogentry_01_01.html


    ひらぽん http://d.hatena.ne.jp/hilapon/
    • 回答としてマーク 山本春海 2011年6月2日 7:36
    2011年5月20日 9:34
    モデレータ
  • > 64bitへの移行に伴い、RS-232C通信に必要なコンポーネントはどのように追加したらよいのでしょうか?

    .NET では SerialPort クラスを使うのが標準のようです。

    .NET Framework 2.0 コア機能解説 ~ 第 2 回 シリアルポートのサポート ~


    ひらぽん http://d.hatena.ne.jp/hilapon/
    • 回答としてマーク 山本春海 2011年6月2日 7:36
    2011年5月20日 10:02
    モデレータ
  • そこで、ご教示いただきたいのが、vb6の後継となるvisual studioのヴァージョンはどれになるのでしょう?

    VB6 の流れでそのまま使える Visual Studio は存在しません。
    VB6 で一旦終了し、.NET Framework を使う新しい VB が生まれたと考えても差し支えないでしょう。

    大きく言語仕様や作り方が変わっているので、作り直しになると思った方がよいでしょう。

    64bitへの移行に伴い、RS-232C通信に必要なコンポーネントはどのように追加したらよいのでしょうか?

    念のため。
    64bit Windows は WOW64 という仕組みを備えているので、32bit アプリケーションも動きます。

    ただ、VB6 で作ったアプリケーションは今後動かなくなっていくので、確かに移行のきっかけにはなるかもしれませんね。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク 山本春海 2011年6月2日 7:36
    2011年5月20日 14:11
    モデレータ
  • 基本的には作り直しになると思っておいた方がよいと思います。
    Visual Basic 2008まではアップグレードウィザードが付属していましたが、Visual Studio 2010にはついていないため注意が必要です。
    #ある程度の規模のアプリで、アップグレードウィザード一発で更新できた例のほうがすくないかもです^^;。
    #ソースを見ながら作り直した方が早い場合ば多いように思います。

    「VB マイグレーションセンター」
    http://www.microsoft.com/japan/msdn/vstudio/vbrun/

    「方法: プロジェクトを Visual Basic 6.0 からアップグレードする」
    http://msdn.microsoft.com/ja-jp/library/bszew91f.aspx

    あと、Active Xコンポーネントなどを使っている場合は、動かないこともあります。

    C++などで独自コンポーネントを作成している場合、注意が必要です。

    あと、64bit化というのはOSを64bit化させるということですよね?
    Azuleanさんの回答の通り、64bit OSでも32/64bitの両方で32bit向けアプリを動かす仕組みがあるため、
    しばらくはこの仕組みを使われるのがよいと存じます。

    もし、64bit OS向けの64bit専用アプリを作成しようということであれば、現在使用しているコンポーネントはほぼ全滅と思ってください。

    Windows 7 32bitで動いていれば、3rdパーティー社製のコンポーネントを使っていないのであれば、
    そのまま動きそうな気もします^^;
    #3rdパーティー社製のコンポーネントで64bit OSでの動作を保証しているVB6向けコンポーネントはあまり見かけません。

     

    • 回答としてマーク 山本春海 2011年6月2日 7:36
    2011年5月23日 9:22

すべての返信

  • > そこで、ご教示いただきたいのが、vb6の後継となるVisual studioのヴァージョンはどれになるのでしょう?

    ここだけ反応しました。単純にバージョンだけで追うなら

    VB7.0 → Visual Basic .NET 2002
    VB7.1 → Visual Basic .NET 2003
    VB8.0 → Visual Basic 2005
    VB9.0 → Visual Basic 2008
    VB10  → Visual Basic 2010

    という流れになり、VB6 の次のバージョンは VB7・・・Visual Studio の製品としては Visual Basic .NET 2002 になりますが、この製品はすでに販売もサポートも終了しております。現在なら Visual Studio 2010 で開発するのが標準だと思います。

    ただし VB7.0 以降、完全に言語仕様が変わりました。正確には Visual Basic ではなく Visual Basic.NET という言語になります。VS に付属のアップグレードウィザードを使えば VB6 のコードを自動的に VB.NET に変換してくれますが、残念ながら正常に変換してくれる保証はありません。VB6 アプリを参考に一から移植し直した方がより優れたシステムに移行できる場合があります。・・・というか、むしろ推奨。

    ちなみに以下のリソースが参考になるかも知れません。
    http://msdn.microsoft.com/ja-jp/library/dd314356.aspx

    あと VB.NET 2003 の頃の記事なのでかなり古くはなってますが、VB6 からの移行のポイントを纏めた素晴らしい記事があります。http://www.atmarkit.co.jp/fdotnet/vb6tonet2/index/index.html

    VB6 → VB.NET へ移行するための簡単なポイントを纏めた記事だと、以下の記事があります。
    http://www.atmarkit.co.jp/fdotnet/chushin/greatblogentry_01/greatblogentry_01_01.html


    ひらぽん http://d.hatena.ne.jp/hilapon/
    • 回答としてマーク 山本春海 2011年6月2日 7:36
    2011年5月20日 9:34
    モデレータ
  • > 64bitへの移行に伴い、RS-232C通信に必要なコンポーネントはどのように追加したらよいのでしょうか?

    .NET では SerialPort クラスを使うのが標準のようです。

    .NET Framework 2.0 コア機能解説 ~ 第 2 回 シリアルポートのサポート ~


    ひらぽん http://d.hatena.ne.jp/hilapon/
    • 回答としてマーク 山本春海 2011年6月2日 7:36
    2011年5月20日 10:02
    モデレータ
  • そこで、ご教示いただきたいのが、vb6の後継となるvisual studioのヴァージョンはどれになるのでしょう?

    VB6 の流れでそのまま使える Visual Studio は存在しません。
    VB6 で一旦終了し、.NET Framework を使う新しい VB が生まれたと考えても差し支えないでしょう。

    大きく言語仕様や作り方が変わっているので、作り直しになると思った方がよいでしょう。

    64bitへの移行に伴い、RS-232C通信に必要なコンポーネントはどのように追加したらよいのでしょうか?

    念のため。
    64bit Windows は WOW64 という仕組みを備えているので、32bit アプリケーションも動きます。

    ただ、VB6 で作ったアプリケーションは今後動かなくなっていくので、確かに移行のきっかけにはなるかもしれませんね。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク 山本春海 2011年6月2日 7:36
    2011年5月20日 14:11
    モデレータ
  • 既にいろいろコメントされていますが、私からも。

    Wikipediaを参照しましたが、VB6が発売されて13年経過しています。joe-39さんは浦島太郎であることをまず自覚した方がいいでしょう。例えば、今普通に売られているPCにはRS-232Cポートは付いていません。

    どういったソフトウェアを作られているのかはわかりませんが、もっと見直すべきところがあるように思います。

    vb6sp6rt4.exeをフリーソフトと呼ぶのにも抵抗があります。このようなものを用いなくても、joe-39さんにはVB6ランタイムを再頒布する権利があると思われます。ソフトウェアを作られるのならライセンスを正しく理解すべきです。

    なお、Windows Vista、Windows Server 2008、およびWindows 7におけるVisual Basic 6.0のサポートについてというドキュメントで、Vista、7においてもVB6アプリケーションの動作がサポートされています。また、VB6開発環境自体の動作についてはVistaまでで7ではサポートされなくなっています。vb6sp6rt4.exeをインストールしなくても動作するような気もします。

    2011年5月20日 16:43
  • 基本的には作り直しになると思っておいた方がよいと思います。
    Visual Basic 2008まではアップグレードウィザードが付属していましたが、Visual Studio 2010にはついていないため注意が必要です。
    #ある程度の規模のアプリで、アップグレードウィザード一発で更新できた例のほうがすくないかもです^^;。
    #ソースを見ながら作り直した方が早い場合ば多いように思います。

    「VB マイグレーションセンター」
    http://www.microsoft.com/japan/msdn/vstudio/vbrun/

    「方法: プロジェクトを Visual Basic 6.0 からアップグレードする」
    http://msdn.microsoft.com/ja-jp/library/bszew91f.aspx

    あと、Active Xコンポーネントなどを使っている場合は、動かないこともあります。

    C++などで独自コンポーネントを作成している場合、注意が必要です。

    あと、64bit化というのはOSを64bit化させるということですよね?
    Azuleanさんの回答の通り、64bit OSでも32/64bitの両方で32bit向けアプリを動かす仕組みがあるため、
    しばらくはこの仕組みを使われるのがよいと存じます。

    もし、64bit OS向けの64bit専用アプリを作成しようということであれば、現在使用しているコンポーネントはほぼ全滅と思ってください。

    Windows 7 32bitで動いていれば、3rdパーティー社製のコンポーネントを使っていないのであれば、
    そのまま動きそうな気もします^^;
    #3rdパーティー社製のコンポーネントで64bit OSでの動作を保証しているVB6向けコンポーネントはあまり見かけません。

     

    • 回答としてマーク 山本春海 2011年6月2日 7:36
    2011年5月23日 9:22