お世話になります。
業務で必要になり、C++やMFCの経験がない中、ActiveXのサンプルを作成しております。
ブラウザはIE11(32bit)、OSはWin10Pro(64bit)です。開発環境はVisualStudio2015 Communityで、以下の参考ページのチュートリアルをそのままやってみました。
期待される形として、ブラウザに表示されたボタンをクリックすると、MFC側でコーディングしたメソッドの返値がJavaScript側に返され、JavaScriptのaleatで「Hallo World」を表示したいのですが、実際はボタンをクリックすると「Internet Explorerは動作を停止しました」と表示され、ブラウザもろとも落ちてしまいます。
【参考ページ】
http://mkdev-note.blogspot.jp/2012/11/visual-studio2012mfc-activex-1.html
http://mkdev-note.blogspot.jp/2012/11/visual-studio2012mfc-activex-2.html
【やったこと】
・開発環境をVisualStudio2015 Communityに変えたのが違いで、あとは上記参考ページをそのままトレースした。
・IE11の動作を32bitであることを確認、各種セキュリティ設定も確認(ActiveXはほぼ無条件で実行するレベルまで下げた)。
同様なサンプルが掲載されている他のページのチュートリアルもやってみましたが、同様にブラウザもろとも落ちる結果になっております。
他にどこか、確認する箇所はありますでしょうか?
ご教示、よろしくお願いいたします。
【追記】
ご指摘を受けて、動作が停止した後に「キャンセル」や「プログラムを終了」ではなく「デバッグ」を選びました。Visual Studio Just-In-Debugger が起動し、Yesを選ぶと、
「ハンドルされない例外が 0x77E69A8A (ntdll.dll) で発生しました(iexplore.exe 内): 0xC0000374: ヒープは壊れています。 (パラメーター: 0x77EA58E8)。」
というメッセージが表示されます。
さらに、これまで気づかなかったのですが、その後でメッセージ下の「継続」を選ぶと、そのままIEは落ちずにaleatでの「Hello World」が表示され、その後ならばhtml側のボタンをクリックしても、期待通りの動作が得られることがわかりました。
【追記2】
上記参考ページに記述内容がそもそも正確ではないというご指摘を受け、他のページを参考にしてみました。
https://msmania.wordpress.com/2014/10/06/mfc-custom-activex-control-on-ie11/
情報も比較的新しく、実現しようとしている環境に近かったため期待したのですが、メソッド追加ウィザードで必要項目を入力し「完了」をクリックすると、VisualStudioのステータスバーに「ソリューションのファイルを解析しています……(ファイル名)」と表示されたまま、VisualStudioが固まってしまいます。
回答3件
あなたの回答
tips
プレビュー