none
VB6からVB.Net2015へのマイグレーションに関して RRS feed

  • 質問

  • お世話になります。

    現在VB6からVB.Net2015へのマイグレーションを行っておりその中でVB6のOCXをそのまま使用しております。
    作られたアプリケーションを起動した際に
    「このActiveXコントロールを使用するためにはライセンスが必要です」
    というエラーが発生する箇所がございます。

    https://support.microsoft.com/ja-jp/kb/318597

    上記URLを参照に作業を行った所エラーは発生しなくなりましたがこの中で「VisualStudio.Net2003」のディスクを
    使用する必要がございます。

    実行環境上でも必要なのですが実行環境上に配布しても問題ないでしょうか。

    お手数ですがご教示頂けますよう何卒宜しくお願い致します。

    2017年1月18日 12:18

回答

  • 率直な疑問として、VB6のOCXを引き続き使ってしまったらマイグレーションしたことにならないと思うのですが…?

    質問のレジストリですが、件のページにも書かれていますが「デザインタイムライセンス情報」ですので、「実行環境でも必要になる」こと自体、何等か誤りがあります。

    2017年1月18日 13:12
  • ActiveXコントロールが VB6 で作られたものでなく C++等で作られた OCX なら、Aximp.exe で.NET に移行可能です。ライセンス情報が必要な場合、リソースファイル(resx) に埋め込む必要があったと思います。

    Aximp.exe (Windows フォーム ActiveX コントロール インポーター)

    実際以前携わった現場では、諸般の事情により WPF のWindows 上にVB6 用のActiveXコントロール(VC製)を貼り付けて動作させてましたが、特に挙動に問題ありませんでした。VB6 で作成されたOCX の場合、ランタイムも必要になるので .NET 上で動かすのは厳しいかと思います。


    本フォーラムは、ユーザー(開発者)同士で情報交換を行うためのコミュニティです。初めて利用される方は、以下のアナウンスをご覧ください。 https://social.msdn.microsoft.com/Forums/ja-JP/ca9ecfb7-4407-4fcb-b8bd-207d68257e68?


    2017年1月18日 14:07
    モデレータ

すべての返信

  • 率直な疑問として、VB6のOCXを引き続き使ってしまったらマイグレーションしたことにならないと思うのですが…?

    質問のレジストリですが、件のページにも書かれていますが「デザインタイムライセンス情報」ですので、「実行環境でも必要になる」こと自体、何等か誤りがあります。

    2017年1月18日 13:12
  • ActiveXコントロールが VB6 で作られたものでなく C++等で作られた OCX なら、Aximp.exe で.NET に移行可能です。ライセンス情報が必要な場合、リソースファイル(resx) に埋め込む必要があったと思います。

    Aximp.exe (Windows フォーム ActiveX コントロール インポーター)

    実際以前携わった現場では、諸般の事情により WPF のWindows 上にVB6 用のActiveXコントロール(VC製)を貼り付けて動作させてましたが、特に挙動に問題ありませんでした。VB6 で作成されたOCX の場合、ランタイムも必要になるので .NET 上で動かすのは厳しいかと思います。


    本フォーラムは、ユーザー(開発者)同士で情報交換を行うためのコミュニティです。初めて利用される方は、以下のアナウンスをご覧ください。 https://social.msdn.microsoft.com/Forums/ja-JP/ca9ecfb7-4407-4fcb-b8bd-207d68257e68?


    2017年1月18日 14:07
    モデレータ
  • 時間等の関係上、該当箇所(OCXを取り除く)の修正は第2フェーズでの改修と考えてます。
    今回はVB.Netで動くことを第1に作っております。

    デザインタイムライセンス情報が実行環境でも必要になるのがおかしいのですか。
    ライセンスのエラーが出るのはおかしいと思い試してみるとエラーがなくなったため
    実行環境でも必要なものだと考えたました。

    デザインタイムライセンス情報でもう少し調べてみます。
    ありがとうございました。

    2017年1月19日 0:55
  • 開発環境はVB6とVisualStudio2015をどちらも入れているため特に挙動がおかしくなることはございませんでした。
    実行環境ではVB6のランタイムを入れた状態で該当箇所以外の動作は問題なく動いておりある一箇所だけそのエラーとなります。
    当然VB6のActiveXコントロールです。

    ひらぽん様では問題なく動いていたご経験があるのですね。参考になります。
    もう少し調べてみます。
    ありがとうございました。
    2017年1月19日 1:00