1

古い VB6 OCX フォームをホストするために使用する .NET Windows フォームがあります。それは私が逃げられないものです!少なくとも今のところ...

この段落が役立つかどうかはわかりませんが、念のため、この情報を共有します。このコントロールをロードするために、私の .NET アプリケーションは、OCX コントロールに関する情報を含む構成ファイルを提供します。次に、リフレクションを使用してコントロールを読み込み、Activator.CreateInstance でインスタンスを作成し、このオブジェクトを System.Windows.Forms.Control にキャストします。次に、.NET フォームの Controls コレクションに追加します。このアプローチは私にとってはうまくいきます。

したがって、.NET フォームで OCX の例外とエラーをキャッチするか、この OCX フォームがクラッシュしたことを知る方法が必要です。これは可能ですか?誰かが同じような経験をしましたか?ちなみに、私は.NET 2.0を使用しています。

ありがとう。

4

1 に答える 1

1

これ以上の知識のある人はまだ答えていないので...

  • .Net コードから VB6 のメソッド/プロパティに直接呼び出している場合、VB6 で発生したエラーは例外として .Net に伝播する必要があります。
  • VB6 コードには、おそらくフォームとコントロールのイベント ハンドラーが含まれます。を使用して、これらのルーチンにエラー ハンドラが必要ですOn Error Goto未処理のエラーはアプリケーションをクラッシュさせると思います(Windows イベントの下のコール スタックに .Net コードはありません)。エラーを .Net に送り返したい場合は、そのためのメカニズムを考案する必要があります。VB6 コンポーネントからカスタム イベントを発生させるか、VB6 から .Net へのコールバックを提供します。
于 2011-01-25T16:13:09.887 に答える