Vista 64ビットのwinformsウィンドウのMFC Active-Xコントロール。 “クラスが登録されていない例外”
-
05-07-2019 - |
質問
winformsウィンドウでホストされているActiveXコントロールのキー処理に関する別のSOポスターの提案を確認しようとして、ベアボーンMFC ActiveXコントロールを作成し、それをWindowsフォームに配置しようとしました。設計時には、コントロールは問題なく表示されました。
アプリケーションを実行すると、恐ろしい「クラス未登録の例外」が発生しました。ダイアログが表示されます。
両方のプロジェクトはVS 2008にあります。Winformsアプリは.Net 3.5フレームワークアプリケーションです。
エクスプローラーからデバッガーで実行しようとしました(どちらの場合も特権が昇格しました)が、何も機能していないようです。 64ビットと32ビットの両方のregsvr32実行可能ファイルでOCXを手動で登録したことも確認しました。
これは 実行されるとは思わないので困惑しています。私は職場で同様の実験(32ビットWindows XPボックス)を問題なく行いました。
私のVS設定は次のとおりです。
- Microsoft Visual Studio 2008
- バージョン9.0.30729.1 SP
- Microsoft .NET Framework
-
バージョン3.5 SP1
最も紛らわしいのは、ActiveXコントロールが設計時に表示されるように見えることです。回答、提案、考えなどは歓迎します。
解決
.Netホストの出力を「Any Platform」ではなくx86に変更する必要がありました。これは、アプリケーションがActiveXコントロールがコンパイルされていないx64にJITTEDされているために必要です。ど! ActiveXホストプロジェクトへの変更後、アプリは正常に実行されました。
所属していません StackOverflow