2011-01-25 17 views
1

古いVB6 OCXフォームをホストする.NET Windowsフォームがあります。それは私が走り出せないものです!少なくとも現時点では....NET WindowsフォームでホストされているOCXから例外/エラーを受け取ります。

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

私が望むのは、.NETフォームのOCX例外やエラーをキャッチすることです。このOCXフォームがクラッシュしたことを知る方法はありません。これは可能ですか?誰も似たような経験をしましたか?ところで、私は.NET 2.0を使用しています。

ありがとうございました。より知識がある誰がまだ答えていないので

答えて

1

...

  • あなたはVB6のメソッド/プロパティにあなたの.NETコードから直接呼び出している場合は、VB6で発生するエラーは、に戻って伝播する必要があります.NETの例外として。
  • VB6コードには、おそらくフォームとコントロールのイベントハンドラが含まれています。 On Error Gotoを使用して、これらのルーチンでエラーハンドラが必要です。私はと考えています。未処理のエラーはアプリケーションをクラッシュさせます(Windowsイベントの下でコールスタックに.Netコードはありません)。エラーを.Netに伝えたい場合は、そうするための仕組みを作り出す必要があります。 VB6コンポーネントからカスタムイベントを発生させるか、またはVB6から.Netにコールバックを提供します。
+0

こんにちは。あなたの答えは本当に私を助けました。あなたはあなたの専門知識に基づいて2つのオプションを私にくれました。そして、「もう知識のない人はまだ答えていないので...」私は答えとしてマークします。もう一度、あなたの助けに感謝します。 –

+0

@ Indiegent Gladはそれを助けました。私はVB2との相互運用性についてはまだ読んでいませんでした。経験から答えられる人がもっといなければならないと思った – MarkJ

関連する問題