こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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処理部分からブレークポイントを設けてデバッグを行うと、上記例外は発生しません。

わかる方がいらっしゃいましたら、回答願います。

投稿日時 - 2008-12-03 14:07:07

QNo.4526448

困ってます

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

こんにちは。
こちらが同じ現象のようなので、参考になれば幸いです。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=15262&forum=7

投稿日時 - 2008-12-04 10:07:41

お礼

ご回答ありがとうございます。

同様の現象のようなので、早速試してみたいと思います。
結果はまた後ほど挙げさせて頂きます。

投稿日時 - 2008-12-08 13:38:38

ANo.1

ファイルにログを出力するなどして、どこでエラー発生しているかを確認できるようにするべきですね。
メッセージボックスを各命令の直前、直後に入れて、どの行まで進んだかによって、エラー発生のポイントを絞り込みもよくやります。

想像で書くと、印刷関係でタイミングによってエラー発生という点から、印刷終了前にアンロードすると発生するエラーであるような気がしますね。
印刷ボタン押下で印刷命令発行後に自動でアンロードしているなら、その自動アンロードの機能を外して、印刷完了(プリンタから排紙)を待ってからその画面を閉じた場合でも同じエラーが発生するかどうか。
CrystalReportsに、状態変化を知らせるイベントやプロパティがあるようなら、印刷完了を待っているかどうか。

まずはそのあたりを調べてみることをお勧めします。

投稿日時 - 2008-12-03 20:40:18

お礼

ありがとうございます。

質問が言葉足らずだったようです。
印刷と書きましたが、正しくは帳票プレビューです。プレビュー上から印刷ボタン押下によって印刷は行えますが、今回はプレビューの表示のみ行っております。
また、印刷(帳票プレビュー)後のUnloadは、画面内に配置した閉じるボタンを押下する事で行っているため、自動Unloadというわけではありません。

ですが、ご指摘頂いたデバッグ方法やCrystalReportsのイベント等で、エラー発生時の状況は見てみたいと思います。

ありがとうございました。

投稿日時 - 2008-12-04 08:38:47

あなたにオススメの質問