2010-11-30 9 views

答えて

11

最も簡単な方法は、VB6コードをActiveX DLLとしてコンパイルすることです。 その後、.netプロジェクトでDLLを参照できます。 (Visual StudioはActiveX DLLを適切に参照できます)

+2

+1。 VB6でActiveX DLLを作成するためのステップバイステップの手順は、[こちら](http://stackoverflow.com/questions/3477265/com-dll-in-vb6/3477344#3477344)です。 VB6マニュアル](http://msdn.microsoft.com/en-us/library/aa229332%28v=VS.60%29.aspx)を参照してください。次に、C#プロジェクトでVB6 ActiveX DLLを参照するだけで、[参照の追加]ダイアログボックスの[COM]タブに表示されます。 – MarkJ

2

はい。可能です。 Visual Basicで記述されたメソッドを呼び出すように呼び出すことができます。アセンブリへの参照が必要です。次に、正しい名前空間で呼び出すだけです。

+1

地獄(DLL)へのVB6は、アセンブリを作成しないと.NETのメタデータを排出しません。 –

+0

このようにしてVB6.0を使用できますか? –

+0

@Saeed:質問はVBのバージョンについては最初に特定されていないようです。 –

2

VB6コードがCOMサーバーとしてコンパイルされている場合にのみ可能です。

+0

VB6にCOMサーバーとしてコンパイルするオプションがありますか?私はVB6.0を持っていませんでしたが、私はあなたが思うようにそれをCOMにするのは簡単ではないと思います。 –

+0

@Saeed:実際はかなりシンプルです。プロジェクトオプションにはチェックボックスがあり、問題の関数がコードモジュールではなくクラスモジュール内のメソッドであることを確認する必要があります(クラスモジュールがプライベートでないことを確認してください)。私はそれが長い時間だったので絶対に確信することはできませんが、私はそれがすべて必要だと思います。 –

+0

COMサーバーでVB6 CODEをコンパイルする方法 – ratty

2

.NETはVB6 DLLをCOM DLLのように使用できます。

「参照の追加」をクリックして、DLLが既に登録されている場合は「COM」タブを選択するか、ファイルを直接選択するために「参照」タブをクリックします。

COMと互換性がある場合、Visual StudioはVB6 DLLの.NETラッパーとして動作するCOM相互運用機能アセンブリを自動的に作成します。

プログラムでVB6 dllとInteropアセンブリを展開する必要があります。

6
  1. が使用してそれを登録するActiveX DLLとして、あなたのVB6のDLLコンパイル - 。(登録して実行]ダイアログを使用するか、コマンドプロンプト)>します。regsvr32 "フルネームと新しくコンパイルしVB6のDLLのパスを"

  2. In .net refrence-select comタブを追加して、この新規に登録したdllを検索してください。

  3. このdllを使用できます。

注:

あなたはVB6のコードの変更を行うたびに、あなたは再び上記の手順に従わなければなりません。

VB6のDLL使用します。regsvr32 "名とパスを" 登録解除するには、/ uの

歓迎

関連する問題