2

.OCXいくつかのユーザー コントロールを持つVB6 ActiveX コントロール プロジェクト (を作成) があります。コントロールは EXE (VB6) によってロードされています。EXE を直接実行すると問題なく実行されますが、デバッガーで実行しようとすると (コードをステップ実行する必要があります)、ユーザー コントロール (.ctl) を読み込めず、「クラスが登録されていません。 . CLSID のオブジェクトを探しています:..." メッセージ

バイナリ互換性が設定されています (すべての古い GUID を保持しています)。レジストリにクラスが表示されます。すべて問題ないように見えますが、デバッガーで実行されません。

何か助けてください。

4

1 に答える 1

2

私は 10 年以上にわたって VB6 を使用してきました。問題は、VBP プロジェクト参照が OCX ユーザー コントロールの最新ビルドと同期していないことです。プロジェクトをグループとして開くか、EXE プロジェクトを単独で開き、[プロジェクト] -> [コンポーネント] をクリックします。

これで、2 つのうちの 1 つが表示されます。参照が無効であるか、有効な参照が選択されています。いずれにせよ、参照のチェックを外して [OK] をクリックします (この操作中に再度選択しないでください.. 信頼してください)。次に、そのダイアログを閉じて [プロジェクト] -> [コンポーネント] に戻り、リストから OCX コントロールを選択します。これで問題は解決します。OCX がリストにない場合は、最初に個別に再構築してから再試行してください。

これは、VB6 IDE の文書化されていないバグです。VB6 SP6 でも解決していませんでした。

于 2013-04-07T04:50:42.673 に答える