VBコードがアウトプロセスCOMサーバーなのか、C ++inprocCOMオブジェクトを使用するクライアントなのかを明確にしていません。
VBコードがクライアントの場合は、コクラスへのCOM参照を使用して、VB.Net実行可能ファイルとしてビルドを使用できます。ビルド中にC ++オブジェクトを登録したくない場合は、タイプライブラリのTlbImpツールを使用して、VB.Netコードから参照するマネージド相互運用機能アセンブリを生成します。
VB.CodeがアウトプロセスCOMサーバーである場合は、COMを介してクレジットできるようにするクラスにCOMVisible属性をマークしてから、RegAsmツールを使用してアセンブリをCOMに登録する必要があります。
もう1つの方法は、C++コードをマネージC++としてコンパイルし、VBコードから標準のマネージアセンブリとして参照することです。このアプローチの利点は、COM相互運用レイヤーを完全にバイパスし、管理された世界に完全にとどまることができることです。これには、特定の完全な利点があります。一方、2つの欠点があります。a)GACに配置しない限り、その特定のクライアントだけがC ++コードにアクセスできること、およびb)マネージC++の記述には少しの立ち上げが必要です。あなたのシナリオでは、COMはVB6コードから低レベルのC ++に移行するための便利な方法としてのみ使用されたように思われるため、最初のものが影響を与えるとは思いません。ただし、2つ目は問題が発生する可能性があります。
更新:コメントの更新に基づくと、実際にはVBコードから直接呼び出されるC ++コードがあり、他のクライアントからCOMを介して呼び出されているようです。
これが実際に当てはまる場合は、VB6コードをVB.Netとして再コンパイルし(2つのプラットフォームは完全に同一ではないため、コードにいくつかの変更を加える必要がある場合があります)、COMVisibleを使用して公開することをお勧めします。 COMオブジェクトとして使用し、P /Invokeを使用して現在のC++コードを消費します(これは、現在VB6コードが消費する方法とかなり似ています)。C++をマネージC++コンポーネントとして再コンパイルする必要はありません。