- 締切済み
FormのUnload時に例外が発生する
開発環境 :Windows2000 :VisualBasic6.0 :Oracle9i :CrystalReports10 お世話になります。 現在、VB6でCrystalReportsの帳票を出力する画面を作成しております。 画面はDirListBoxとFileListBoxからプレビューしたい帳票を選択し、 「印刷」ボタンを押下することで帳票が表示される、シンプルな作りと なっております。 今回質問したい内容は、帳票出力後に画面をUnloadしようとすると例外が発生することについてです。 Unloadするとデバッガが起動し、 「VB6.EXE[4桁の数字(毎回異なる)]でハンドルされていないWin32の例外が発生しました。」 というエラーが発生し、利用可能なデバッガとしてインストールされている VisualStudio2005が表示されます。 デバッグを開始すると 「0559884F mov eax,dword ptr [ecx+4] 」 でデバッグが止まり、 「VB6.EXE の 0x0559884f でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x00000058 を読み込み中にアクセス違反が発生しました。」 が表示されます。 これはどういったエラーなのでしょうか? ちなみにプログラム側でUnload処理部分からブレークポイントを設けてデバッグを行うと、上記例外は発生しません。 わかる方がいらっしゃいましたら、回答願います。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- korin_
- ベストアンサー率69% (46/66)
こんにちは。 こちらが同じ現象のようなので、参考になれば幸いです。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=15262&forum=7
- BellBell
- ベストアンサー率54% (327/598)
ファイルにログを出力するなどして、どこでエラー発生しているかを確認できるようにするべきですね。 メッセージボックスを各命令の直前、直後に入れて、どの行まで進んだかによって、エラー発生のポイントを絞り込みもよくやります。 想像で書くと、印刷関係でタイミングによってエラー発生という点から、印刷終了前にアンロードすると発生するエラーであるような気がしますね。 印刷ボタン押下で印刷命令発行後に自動でアンロードしているなら、その自動アンロードの機能を外して、印刷完了(プリンタから排紙)を待ってからその画面を閉じた場合でも同じエラーが発生するかどうか。 CrystalReportsに、状態変化を知らせるイベントやプロパティがあるようなら、印刷完了を待っているかどうか。 まずはそのあたりを調べてみることをお勧めします。
お礼
ありがとうございます。 質問が言葉足らずだったようです。 印刷と書きましたが、正しくは帳票プレビューです。プレビュー上から印刷ボタン押下によって印刷は行えますが、今回はプレビューの表示のみ行っております。 また、印刷(帳票プレビュー)後のUnloadは、画面内に配置した閉じるボタンを押下する事で行っているため、自動Unloadというわけではありません。 ですが、ご指摘頂いたデバッグ方法やCrystalReportsのイベント等で、エラー発生時の状況は見てみたいと思います。 ありがとうございました。
お礼
ご回答ありがとうございます。 同様の現象のようなので、早速試してみたいと思います。 結果はまた後ほど挙げさせて頂きます。