[VB6] SP5: コンボ ボックスを CoolBar の band 上に設定すると一般保護違反が発生

この記事は、以前は次の ID で公開されていました: JP269618
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
Visual Basic アプリケーションに、CoolBar コントロールの band 上に設定されたコンボ ボックス コントロールが含まれている場合、Microsoft Visual Studio 6.0 Service Pack 4 (SP4) より前のバージョンの Visual Basic では正しく動作しますが、SP4 では CoolBar コントロールを含むフォームを閉じたときにアプリケーションが応答を停止 (クラッシュ) する場合があります。このクラッシュは、Windows 98 または Windows 95 上で実行されているシステムでのみ発生します。
原因
この現象は、CoolBar の band 上に設定されたコントロールが正しいタイミングでクリアされないために発生します。
解決方法
Visual Studio(R) 6.0 Service Pack 5 をインストールすることで解決できます。

以下は Service Pack 5 を適用しない場合の解決方法です。

Form_QueryUnload イベント ハンドラに次のコードを追加します。
CoolBarName.Bands.Clear
状況
資料の冒頭に記載している製品の障害として確認しております。
この障害は Visual Studio(R) 6.0 Service Pack 5 にて修正されました。
Visual Studio 6.0 Service Pack の詳細情報は、弊社 Web サイトをご覧ください。

http://www.microsoft.com/japan/developer/vstudio/download/sp/vs6sp.htm
詳細

問題の再現手順

  1. Windows 98 上の Visual Studio 6.0 SP4 から、Visual Basic で標準 EXE プロジェクトを作成します。 デフォルトで、Form1 が追加されます。
  2. [コンポーネント] ダイアログ ボックスで Ctrl + T キーを押し、[Microsoft Windows コモン コントロール - 3 6.0 (Sp4)] を選択して [OK] をクリックします。
  3. Form1 に CoolBar コントロールを追加します。デフォルトの設定を使用します。
  4. CoolBar コントロールのいずれかの band の中に、コンボ ボックス コントロールを追加します。
  5. プロジェクトを保存し、F5 キーを押してアプリケーションを実行します。フォームの右上隅の [閉じる] ボタンをクリックしてフォームを閉じると、次のようなエラー メッセージが表示されます。
    "ファイル名" で一般保護違反が発生しました。発生した場所は モジュール USER.EXE 内の 0004:00000499 番地です。

    このプログラムは不正な処理を行ったため、強制終了されます。終了できない場合は、プログラムの製造元に連絡してください。
    "ファイル名" はプロジェクトの名前です。

  6. Visual Basic 統合開発環境でもう一度このプロジェクトを開きます。Visual Basic が再起動されるときに Windows がクラッシュし、コンピュータの再起動が必要となる場合があります。また、バックグラウンドで実行されているほかのアプリケーションやドライバをシャットダウンするように指示する "リソース不足" のメッセージ ボックスが表示される場合もあります。
  7. 次のコードを Form1 に追加します。
    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)    CoolBar1.Bands.ClearEnd Sub
  8. プロジェクトを保存し、F5 キーを押してアプリケーションを実行します。フォームの右上隅の×印をクリックしてフォームを閉じると、プロジェクトは正常に動作します。

    : Visual Basic IDE で [終了] ボタンをクリックしてアプリケーションを終了した場合には、Form_QueryUnload イベント ハンドラが実行されないため、引き続き問題が発生します。IDE で [終了] ボタンを使用してアプリケーションを終了しないようにしてください。この問題を回避するには、システム ディレクトリの中にある SP4 版の Comct332.ocx を、Visual Studio 6.0 Service Pack 3 のバージョンに置き換えます。同時に、上記の最後の手順で説明した回避策も実行する必要があります。
関連情報
関連情報については、次の文書番号をクリックして Microsoft Knowledge Base を参照してください。
189632 BUG: Error in CoolBar Event Can Cause Hanging or Exception
189914 BUG: Wrapped CoolBar Control May GPF Client EXE Program
257630 FIX: Exception Error Closing an Application Containing a CoolBar Control
257630[VB6] SP4: CoolBar コントロールを含むアプリケーション終了時の例外エラー
194295[VS60] Service Pack がインストール済みか確認するには
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 269618 (最終更新日 2000-12-13) をもとに作成したものです。

プロパティ

文書番号:269618 - 最終更新日: 02/24/2014 03:18:37 - リビジョン: 1.0

  • Microsoft Visual Basic 6.0 Enterprise Edition
  • kbnosurvey kbarchive kbbug kbvs600sp5 kbpending vb6 KB269618
フィードバック