VB6→.NETへプログラムを移行したいのですが、タイトルのようなエラーが出ます。tabctl.ocxとwinsockに出ます。.ocxを入れ替えても同じエラーが出ます。しかも、tabctl自体コンポーネントの追加をしても、.net上で使えません。
もう、何日も足踏み状態です。教えてください。
> tabctl.ocxとwinsockに出ます。
それらのコントロールを使うよりも、System.Windows.Forms.TabControl クラスとか、
System.Net.Sockets 名前空間を使った方が良いかと思いますよ。
> ocxを入れ替えても同じエラーが出ます。
ランタイムライセンス(実行時ライセンス)だけがインストールされた状態で、
デザインタイムライセンス(開発時ライセンス)が無い状態になっているのだと思います。
まずはそのPCに、VB6の開発環境をインストールしてあるかどうかを確認してみてください。
もし、VB6が入っているのに使用できないという場合には、
RegSvr32 /u C:\〜〜\〜〜.ocx
を実行後、VB6をアンインストールしてから再起動し、その後、
VB6を再インストールしてみては如何でしょうか。保証はできませんが…。
http://support.microsoft.com/default.aspx?scid=kb;ja;JP411156
お返事ありがとうございます。
現在のPCにはVB6の開発環境は入っていません。VB6も他のPCには入っているのですが現PCにはインストーラーがないため、インストールできません。
どうしても、VB6で作ったアプリを.NETへ移植したいのですが、何かよい方法はありませんか?
> 現在のPCにはVB6の開発環境は入っていません。
その場合は、それらのocxファイルを利用する事はできません。VB6をインストールしてください。
VB6用のocxをVB.NETやOffice等で使う場合には、ランタイムだけではなく、デザインタイムライセンスも必要なのです。exeにコンパイルして実行する場合は、ライセンス情報がexeに埋め込まれるので、ランタイムだけで動作しますけれどね。
また、それらのコントロールは、VB6用に作られた物ですから、他のPC用に配布するときには、「VB6の再頒布条件」に従う必要があります。ですから例えば、VB.NET製のexeファイルと、それらのocxだけの組み合わせで配布したり、あるいは、ocxを単体で配布したりする事はライセンスに抵触する可能性があります。VB6製アプリに付属させる形でocxを配布する事はできるので、VB6製アプリ + VB.NET製アプリ + VB6用OCXという組み合わせならばOKですけれども。
わかりました。
とりあえず早急にVB6を探しています。
もう買うことは出来ないみたいなので・・・大変ですが。
ありがとうございました。
ツイート | ![]() |