0

VB 6.0 を使用して、さまざまな ActiveX コントロールを単一の「.ocx」ファイルに作成しました。

MFC アプリケーションでこれらのユーザー コントロールを使用しています。これらのコントロールは、設計時に MFC PropertyPage ダイアログに追加しました。このプロパティページはプロパティシートに追加され、このプロパティページは ActiveX コンテナ コントロールに追加されます。最後に、コンテナー コントロールが別のアプリケーションによって読み込まれます。

Windows XP、Windows 7 32 ビット オペレーティング システムでダイアログが正しく読み込まれます。Windows 2008 サーバーおよび Windows 7 64 ビット オペレーティング システムで、私の VB 6.0 ユーザー コントロールがプロパティ ページに追加されたとき、CPropertySheet::OnInitDialog getting failed (throws exception). 例外をキャッチするために可能なMFC例外を試しましたが、デフォルトの(...)キャッチブロックは実行されるだけです。

PropertyPage から VB 6.0 ユーザー コントロールを削除すると、例外はありません。

  1. VB 6.0 ユーザー コントロールによってスローされた例外を処理する方法は?
  2. VB 6.0 ユーザー コントロールで作成されたメモリが適切に解放されたことを確認するにはどうすればよいですか?
4

1 に答える 1

1

VB6 コントロール プロジェクトのすべてのコードをコメント アウトしてから、再コンパイルしてみてください。プロパティ ページを使用して再試行します。同じ問題が発生しない場合は、幸運です。誤動作しているコードが見つかるまで、メソッドごとにコードのコメントを外します。

于 2012-07-23T15:06:04.213 に答える