移行ガイド

Visual Basic 6.0PerfectGrid Ver.1.0 (VB6+PG1) で開発されたアプリケーションを、
Visual Basic .NETPerfectGrid Ver.2.0 (VB.NET+PG2)
移行する手順は以下のとおりです。
移行はプロジェクト単位で行うようにしてください。
移行したファイルを元に戻すことはできませんから、移行前に必ずバックアップをとるようにしてください。

(1) VB6+PG1 → VB6+PG2
    @移行ツールの PG1to2.exe を起動します。

    A[追加] ボタンを押し、VB6プロジェクトで使用したファイルをファイルダイアログから選びます。
    B[変換実行] ボタンを押して変換し、移行ツールを終了します。
    C変換された VB6 プロジェクトファイルを VB6 で開いてコンパイルを行い、
     VB6+PG1 で作成されたアプリケーションとの動作比較をしてください。
     なお、移行ツールではバージョンの更新を行わないため
     「PGRID2.OCX をアップグレードする」旨のメッセージが表示されますが、
     そのまま OK とし、プロジェクト・フォームとも上書き保存してください。

    ※この段階で、コンパイルエラーが発生する・動作しない・動作の非互換がある、などの場合には
     弊社サポートまでお問い合わせください。
(2) VB6+PG2 → VB.NET+PG2 (Visual Basic アップグレード ウィザード)
    @VB.NET を起動し、(1) で変換した VB6 プロジェクトを読み込みます。
    AVisual Basic アップグレード ウィザード (VBU) による自動変換を行い、
     変換後のファイルの UPGRADE_WARNING: 箇所を手作業で修正します。
    BVB.NET でコンパイルをし、コンパイルエラーを修正します。
    ※この時点ではAxImpの不具合により自動生成されたラッパ DLL が不正であるため、
     コンパイルエラーを取りきれない場合がありますので、
     エラー箇所は一時的にコメントアウトしておいてください。
     また、コンパイルは正常終了しても正常に動作しない場合があります。
(3) ツールボックスに PG2 を追加する
 ※VB6 からのアップグレード後にプロジェクトを改変しない場合には、この (3) の作業は不要です。
    @フォームのデザイン画面を表示し、ツールボックスを開きます。
    A[マイ ユーザー コントロール] タブがない場合には、
     コンテキストメニューから タブを追加(A) を選んでタブを追加します。
    B[マイ ユーザー コントロール] タブのコンテキストメニューから、
     アイテムの追加と削除(I)... を選びます。 Cツールボックスのカスタマイズ ダイアログで [参照(B)...] ボタンを押し、
     PG2 インストールフォルダから使用する AxPGRID2Lib.dll を追加し、VB.NET を終了します。
    [COMコンポーネント] として追加しないでください。
(4) 参照設定の変更 (自動生成 → カスタム)
  参照設定を VBU で自動生成されたラッパ DLL から、カスタムラッパ DLL に変更します。
    @VS.NET 対応ツールの PG2VS.exe を起動し、
     [変換設定]「プロジェクトファイルの参照設定の変換」になっていることを確認します。
    A[追加] ボタンを押し、VB.NET プロジェクトファイル (*.vbproj;*.user) をファイルダイアログから選びます。
    B[変換実行] ボタンを押して変換します。
(5) 名前空間の変更 (自動生成 → カスタム)
  VBU で自動生成された各コントロール別の名前空間を、Comrade.PerfectGrid に変更します。
    @(4) に続いて PG2VS.exe を使用します。
     [変換設定]「ソースファイルの名前空間の変換」になっていることを確認します。
    A[追加] ボタンを押し、VB.NET ソースファイル (*.vb) をファイルダイアログから選びます。
    B[変換実行] ボタンを押して変換します。
(6) コントロール配列ライブラリの変更 (自動生成 → カスタム)
  VBU で自動生成されたコントロール配列ライブラリを、(4)(5) に合わせて変更します。
  ※VB6 からのアップグレード時以外は、この (6) の作業は不要です。
    @(5) に続いて PG2VS.exe を使用します。
     [変換設定]「コントロール配列ライブラリの変換」になっていることを確認します。
    A[追加] ボタンを押し、VBU で自動生成されたコントロール配列ライブラリ用の、
     VB.NET ソースファイル (AxPerfectGridArray.vb) をファイルダイアログから選びます。
    B[変換実行] ボタンを押して変換します。
(7) エラーの修正
    @VB.NETを起動し、再度コンパイルします。
    AAxImpの不具合により、VBU での自動変換で、
     引数つきプロパティの色設定がSystem.UInt32型になっている箇所が、
     カスタムラッパ DLL にしたことによって本来のSystem.Drawing.Color型になったために、
     その箇所がエラーになりますので、
     System.Convert.ToUInt32(System.Drawing.ColorTranslator.FromOle(即値)) を、
     System.Drawing.ColorTranslator.FromOle(即値) に修正します。
    B同様に (2) でコメントアウトしておいた引数つきプロパティのフォント・ピクチャ設定を、
     本来のSystem.Drawing.Font, System.Drawing.Image型として設定してください。
    ※フォントは引数つきでないプロパティも設定方法が VB6 から変更されています。
     移行方法については VB.NETアプリケーションのアップグレードを参照してください。
    Cコンパイルし、動作を検証します。
     PG2 が原因と考えられる不具合は弊社サポートまでお問い合わせください。
<補足>
    @PG1.NET での動作保証をしておりませんが、
     PG1C#VB.NET でご利用になられていた場合で、
     それを PG2 に移行する場合には、(1)(3)(4)(5)(7) を実行してください。
    AC#VB.NET で新規に PG2 をご利用になられる場合には、
     (3) を実行してください。
    B(4)(5)(6) は、VS.NET で当該プロジェクトを開いていない状態で実行してください。