MFCでプログラムを組んだのですがエラーが出て困っています

このQ&Aのポイント
  • MFCでプログラムを組んだのですがエラーが出て困っています。処理内容は正常に行われますが、ダイアログを閉じる際にエラーが発生します。「問題が発生したため、MFcalculation.exeを終了します。ご不便をおかけして申し訳ありません」というエラーメッセージが表示されます。
  • プログラムは正常に動作しており、条件に応じて処理が実行されます。しかし、ダイアログを閉じる際にエラーが発生し、プログラム名のMFcalculation.exeが終了するエラーメッセージが表示されます。
  • MFCで組んだプログラムがエラーを出して困っています。処理自体は問題なく行われますが、ダイアログを閉じる際にエラーが発生し、MFcalculation.exeが終了します。ご不便をおかけして申し訳ありません。
回答を見る
  • ベストアンサー

エラー!!

MFCでプログラムを組んだのですがエラーが出て困っています…。 でも、処理内容はちゃんと行ってくれるのです。内容としてはダイアログ上に設定情報を入力できるテキストボックスと実行の合図となる実行ボタン、ダイアログを閉じる(プログラムを終了させる)キャンセルボタンからなっています。テキストボックスに条件を打ち込み実行ボタンを押すとその条件に従って処理するわけです。ここは問題なく動いています。 ところが問題はキャンセルボタンを押したときなのです。ダイアログを閉じる文は次のものです。 CDialog::OnCancel(); これで閉じれるのですが、その後に次のようなエラーが出ます!しかも2回…。ちなみにMFcalculation.exeというのは私のプログラム名です。 「問題が発生したため、MFcalculation.exe を終了し ます。 ご不便をおかけして申し訳ありません。」 私の予想では処理をしようとしたときのエラーではなくダイアログ自体を閉じようとしている時にエラーが起きてるように思うんですが。非常にわかりにくいとは思いますが何か思い当たることがあれば何でもいいので教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • vespire
  • ベストアンサー率32% (34/104)
回答No.2

 こんばんは。  デバッグしているときに、ボタンが三つあるダイアログは表示されませんでしたか?  そこで真ん中のボタンを押すと、実際にどこで落ちているのかがわかるのですが・・・  補足していただいたメッセージを見る限りでは、やはりメモリ例外ですので、 ・解放し忘れてる ・戻り値がNULLだった場合、そこでエラーとせずに、その変数を参照して何かしようとしてる  ということが可能性としてあげられます。  もし、戻り値判定のロジックを入れてなければ、入れてみてください。  あと、量が多くなければ、テキストボックスの処理をしている関数のコードを見せていただければ、こちらでトレースも出来ますが・・・

N503is
質問者

補足

先程はお礼も言わず申し訳ありません。親切に回答していただきありがとうございます。 デバッグしているときに、ボタンが三つあるダイアログは表示されなかったと思います。 メモリの開放についてなんですが、malloc関数を使ってないんで大丈夫だと思います。自動変数は計算機自身が自動的にメモリ確保開放を行ってくれるはずがそこで問題が起こっている可能性もありますか? 私もメモリ関係の問題なのだとは思うんです。プログラムを起動して何も処理を行わずにプログラムを終了させてもエラーが出ますから。一応そのキャンセルボタンを押した時にテキストボックスの内容を次回起動時に読み込ますように設定ファイルとして保存させる処理をさせてからプログラムが終了するようにしているのですが、その処理に問題はないように思いますので(その処理をなくしてみてもエラーが出た)恐らく処理内容ではなく他の部分によるように思います。

その他の回答 (3)

  • vespire
  • ベストアンサー率32% (34/104)
回答No.4

 お返事遅くなり、申し訳ありません。 >malloc関数を使ってないんで大丈夫だと思います  malloc使ってなくても、メモリ例外が起こることはあります。  実際に最近起こりました(起こしました(笑))  ん~・・・やっぱり見ないとわからないのですが、一度別の名前でプロジェクトを作り直してみてはいかがでしょうか?  あまりお役に立てず、申し訳ないm(_ _)m

N503is
質問者

お礼

またまた返事が遅くなってしまい申し訳ありません。 それでなんですが何故かエラーがでなくなりました。 プログラム内容を変えようと思いましてバックアップをとって内容を変えていたんです。それで新しい機能を追加することになりまして、プログラム改良後にちゃんと動きましたので(でも相変わらずエラーは出る)、バックアップの方にもその機能を付けようと思い命令内容をコピーして貼り付けてみるとエラーがなくなったのですよ。 はっきりいって原因が全くわかりません。気になることといえば実行ファイルが見つからずフルリンクを行ってたことぐらいですが、他のプログラムはフルリンクを行ってもエラーが消えません。 本当に不思議です・・・。

  • z64423
  • ベストアンサー率53% (26/49)
回答No.3

使ってる Windows のバージョンと SP に対応したシンボルファイルを MS からダウンロードしてきてインストールしましょう。 何が起きているか、少しは見えてくると思いますよ。 VC++ でデバッガを起動したときに、デバッグ・ウィンドウに  'ntdll.dll' をロードしました、合致するシンボル情報は見つかりません  でした。  'C:\WINDOWS\…\kernel32.dll' をロードしました、合致するシンボル  情報は見つかりませんでした。 とメッセージがでますが、シンボルをインストールすれば、 これが出なくなります。 「だから??」、、、 Windows プログラミングのデバッグでは必需品ですから、 インストールしましょう。

参考URL:
http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx
N503is
質問者

お礼

インストールできませんでした…。 でもそんなものがあるとは知りませんでした。 ありがとうございました。

  • vespire
  • ベストアンサー率32% (34/104)
回答No.1

 こんばんは。  うーん、このメッセージだけではわからない^^;  Debug版で動かしてみてください。  詳細なメッセージがでると思いますよ。 #思いつくところでは、newしたポインタをdeleteし忘れたりとか・・・(最近やっちゃいましたが(笑))

N503is
質問者

補足

それも以前やったのですが、エラーメッセージの意味がわからないんですよ。メッセージは次のようなものです。 ハンドルされてない例外はMFcalculation.exe(KERNEL32.DLL)にあります:0xC0000005: Access Violation。 例外処理 (初回) は MFcalculation.exe (KERNEL32.DLL) にあります: 0xC0000005: Access Violation。 何かわかることがあればお願いしますm(__)m

関連するQ&A

  • ヤフー 懸賞でエラー(IE6)

    ヤフー懸賞のページにアクセスすると、次のようなダイアログボックスが出て、IEが終了されてしまいます。 ダイアログボックスの内容 Search_Glow: iexplore.exe -アプリケーション エラー- ”0x06535fc1”の命令が"0x26373135"のメモリが"written"二鳴子とはできませんでした。 プログラムを終了するには[OK]をクリックしてください プログラムをデバッグするには[キャンセル]をクリックしてください。 というものです。原因解明にご協力ください。

  • アクセスのエラー??

    前任者が作った個人的なアクセスシステムで、印刷ボタンを押すと「実行時エラー’2501’Open Reportアクションの実行はキャンセルされました。」Visual Basicコードでアクションを実行するDoCmdオブジェクトのメソッドを使おうとしましたが、表示されたダイアログボックスで(キャンセル)がクリックされました。たとえば、Closeメソッドを使って変更を行ったフォームを閉じる場合に、変更内容を保存するかどうかを確認するダイアログボックスで(キャンセル)がクリックされました。といったエラーが出て⇒デバッグするか終了の選択が出ます。何もキャンセルなどしてないのですが、どうすればいいでしょうか?ちなみに、終了して再度、印刷ボタンを押すと、実行時エラー91(オブジェクト変数またはWithブロック変数が設定されていません。)というのが、出ます(;_;)私はほとんどアクセスは、わかりません。どなたか詳しい方宜しくお願いします。

  • IEでPDFを終了するとエラーがでます。

    IE6.0上でPDFを見た後、閉じると以下のエラーがでます。 エラーが発生したため、IEXPLORE.exeを終了します。プログラムをもう一度開始する必要があります。 エラーログを作成しています。 下に「キャンセルボタン」 キャンセルボタンを押すと、 このプログラムを終了できません。デバック中である場合は、プログラムを再開するか、またはデバッガを終了してください。 が出てきて、これがなかなか閉じれません。 いつからかこうなってしまいました。どうすればエラーでないようにできるでしょうか?教えてください。

  • 終了していない文字列型の定数です・・・と出ます。

    javaScript使用可能・不可能の表示 ↓ 「OK」「キャンセル」ボタン付きのダイアログボックスの表示 ↓ OK→次のページへ キャンセル→ダイアログボックスを閉じる というようなスクリプトを作ったのですが、最初は上手く動いたのですが、すこしダイアログボックスの文字を変更すると、終了していない文字列型の定数です・・・ というエラーを吐いてきます。 どうやらここの文字が多すぎるとエラーを吐くのですがどうなのでしょうか。 http://mekipedia.cocolog-nifty.com/test.txt これがタグのデータです。 このテキストデータでは表示できるようなので、文字コードか何かでしょうか・・・。 では、よろしくお願いします。

  • プログラム終了方法

    こんにちは。プログラム終了方法についてお教え下さい。 下記のような処理を書いています。 if(A!=B)の場合、処理を抜けてプログラムを終了させたいと思っています。 下記のコードだとテキストボックスにエラー表示をさせた後に、プログラムを終了させたいです。 ただ、現状だと~~~処理3、処理4が実行されてしまいます。 どのようにすれば、if(A!=B)でテキストボックスにエラーを出力した後にプログラムを終了できるでしょうか? gotoを使用し、真ん中の処理を飛ばす方法しか有りませんでしょうか? よろしくお願いします。 try{ ~~~処理1 ~~~処理2 if(A!=B) { textbox.text = "エラー"; //goto endfinish; } ~~~処理3 ~~~処理4 } catch { textbox.text = "エラー"; } //endfinish:;

  • 【Excel VBA】ユーザーフォーム

    Excel2003を使用しています。 内容的には前回の(質問No.3376017)続きなのですが… あるシートに対して、印刷範囲指定のマクロを作りました。 印刷不要ページを指定して、それ以外のページを印刷するというもので、印刷開始ページ、終了ページ、不要ページをユーザーフォームを作ってテキストボックスに入力するようにしました。 そのテキストボックスの下に、『設定』と『キャンセル』のボタンを作っていますが、『キャンセル』を選択した場合は、このマクロを実行しないで終了させたいのですが、可能ですか? 『設定』と『キャンセル』の処理は、イベントプロシージャ(クリック)に記述していますが、『キャンセル』ボタンをクリックしたときにマクロを実行しないで終了するには、どのように記述すればいいでしょうか?[Exit]を使うのかな?と思って書いてみましたが、エラーが出てしまいました(^_^;) よろしくお願いします。

  • ウィルスなのでしょうか?

    こんにちわ。 Oracle8.1.7をインストールしてからだと思うのですが、インストール後の再起動から妙な現象が起きるようになりました。 「エラーが発生したためjava.exeを終了します。プログラムをもう一度開始する必要があります」 とダイアログが出てきて、エラーログ作成中となり「キャンセル」ボタンを押してもどんどん次から次へとこのダイアログが出てきてしまいます。 キャンセルボタンを押さずに置いておくと「OK」になり、同じように次から次へとこのダイアログが出てきてしまいます。 ウィルスなら早急に対処しなくてはならないので、どなたかアドバイスよろしくお願いします。

  • wuauclt.exeに関するエラーが消えません

    PCを立ち上げると、必ず、 wuauclt.exe-アプリケーションエラー “0x6f9142aa”の命令が“0x00000000”のメモリを参照しました。メモリが”read”になることはできませんでした。 とのエラーメッセージが出て、そのまま何をしようともダイアログボックスが出っぱなしです。 プログラムの終了で[OK]をクリックしても[キャンセル]をクリックしてデバッグしても、 一瞬消えるものの、すぐに再出現し、以降何をしてもずーっと出っぱなしです。 デスクトップの隅に追いやれば、PC自体は使用できるのですが、何とも気持ち悪いのです。 シャットダウンの最中ですら出っぱなしで、毎回電源ボタン長押しで強制終了しています。 Web検索しても、wuauclt.exeの終了エラーについての情報はあるのですが、 このようなエラーについての情報が見つかりません。 対処法をご存じの方がいらっしゃったらご教授願います。 尚PCはNECのVR700/B、Windows XP Home Edition SP2、ウイルスセキュリティZeroを使用しています。

  • このエラーはどこが悪いのでしょうか?

    WindowsXP を使っています。 今日パソコンを起動しようとしたら、以下のエラーメッセージが表示されました。 7C0 qttask.exe ディスクがありません。 ドライブにディスクがありません ディスクをドライブ ¥Device\HardDisk1\DR4 挿入してください というダイアログボックスが表示され キャンセル 再試行 続行という3つのボタンが表示されています。 これはハードディスクが壊れてしまっているのでしょうか?

  • sw:AcroRd32.exeアプリケーションエラー

    自分でも結構調べてみたんですが、お知恵拝借させてください。 3日連続で次の現象が起きています。 パソコン終了時です。 1.プログラムの終了-sw ユーザーからの応答を待っているためこのプログラムを終了できません。「すぐに終了」「キャンセル」 *1のダイアログのすぐ上に次のダイアログが重なって出ます。 2.dwwin.exe-DLL初期化の失敗 ウィンドウステーションがシャットダウン中であるためアプリケーションが初期化に失敗しました。「OK」 *「OK」をクリック 3.sw:AcroRd32.exeアプリケーションエラー "0×58731531"の命令が"0×00000014"のメモリを参照しました。メモリが"read"になることはできませんでした。プログラムを終了するには「OK」をクリックしてください。「OK」 *ここで「OK」をクリックすると、終了作業に入ることもありますが、一度は切れずに、電源長押しで切りました。 ★自分で調べてみたこととやろうとしていること ・dwwin.exeはMicrosoftへのエラー報告の実行ファイルらしいので、エラー報告を止めてみればいいのではないか。 ・AcroRd32.exeはAdobeReaderだと思うので、最新版にアップデートしてみようか。 ・ここで同じ現象を検索すると、パソコンに負荷がかかりすぎていて終了できない現象なので負荷をなくせ、という意見と、アプリケーションエラーなので、パソコンにかかる負荷とは関係ない、という意見に分かれていて、どっちか判別つかない。 ・システムの復元をやってみようか。 NEC LavieLL350/C WindowsXP Home Edition CPU 1.60GHz メモリ 224MB HDD C 59.6GB 空き45.1GB D 6.51GB 空き4.33GB ワクチンソフト…ウイルスバスター2006 Microsoft重要な更新、すべて済み どうすれば、現象解決できるのか、お知恵をお貸しください、よろしくお願いします。

専門家に質問してみよう