2010-12-08 7 views
1

MFCアプリケーションからカスタムActiveXコントロールをロードするときに、CWnd :: CreateControlメソッドに問題があります。MFC CWnd :: CreateControlメソッドの問題

実装されているカスタムActiveXコントロールのリストがあります。CWnd :: CreateControlメソッドを呼び出すCreateメソッドを呼び出します。

私はダイアログウィンドウを持っていますが、OnInitDialogではSettimer()を使ってタイマースレッドを開始しました。 OnTimerイベントでは、それぞれのコントロールのCreateメソッドを呼び出すことによって、すべてのコントロールをロードしています。ダイアログウィンドウを10回以上開いたり閉じたりした後、OnTimerはcontolsを読み込むことができません。

私はfalseである戻り値と0x0であるGetLastError(操作が成功した)をチェックしました。私は完全にデバッグしていて、このイベントの前にすべてのエラーの可能性をチェックしました。コントロールをロードしなかった原因を見つけることができませんでした。

+0

ありがとうございました。私はこの問題を解決しました。この問題は、COM規則で実装されていない一部のActiveXコントロールで発生します。 InitInstance()メソッドではCoInitialize()メソッドを呼び出し、ExitInstance()メソッドではCoUninitialize()メソッドを呼び出す必要があります。この問題の原因となる方法では行われません。いったん完了すると、問題は解決されます。 –

答えて

1

問題の下記の質問と同様の発生を参照したいことがあり Exception while opening file

類似性は、それがうまく働いていたが、しばらくして、それが例外をスローし、我々は、エラーメッセージをチェックするとき、それはエラーが発生しなかっただろうという。この問題は、例外を引き起こす行には直接存在しません。アプリケーションのどこかに潜んでいるだろう。

私の場合、私がメソッドにアクセスしていた方法を変更して、それが動作し始めた。

関連する問題