EDIT BOX(Value型変数)に空白を入力してもエラーにならないようにするには?


raki  2011-05-25 06:02:32  No: 72664  IP: 192.*.*.*

EDIT BOXに入力された数値を取込むようにしているのですが、
EDIT BOX内の数字を全て消去して、
EDIT BOX内が空っぽ(空白)の状態になると、
エラーが発生してプログラムが止まってしまいます。

問題のEDIT BOXはValue型変数(int型)です。

また、プログラムはタイマーで定期的に
UpdateData(true)とUpdateData(false)を行い、
ダイアログ上のEDIT BOXの数値の取り込みと出力を行っています。

*ダイアログには、ユーザーが数値を入力するEDIT BOXと
 入力された数値を元に計算した結果を出力するEDIT BOXがあります。

EDIT BOXが空っぽ(空白)になってもプログラムが止まらないように
するにはどうすれば良いのでしょうか?宜しくお願い致します。

編集 削除
仲澤@失業者  2011-05-25 13:04:10  No: 72665  IP: 192.*.*.*

数値変換する前に空欄かどうか判定するだけのような気がしますが、
その他にどのような問題があるのでしょうか。

編集 削除
ryo  2011-05-25 18:20:29  No: 72666  IP: 192.*.*.*

具体的にエラーとは何でしょう?

>問題のEDIT BOXはValue型変数(int型)です。
これで、空欄だと、UpdateDataで取得する際
「整数をいれてください」というユーザーへの警告がでると思いますが

編集 削除
raki  2011-05-26 06:27:08  No: 72667  IP: 192.*.*.*

皆様、御回答有難うございます。

エラー内容は、「Microsoft Visual C++ Debug Library」というタイトル
のメッセージボックスが出てくるものです。メッセージボックスには下記
の内容が記載されています。

------------------------------------------------------------------
Debug Assertion Failed!

For information on how your program can cause an assrtion
failure,see the Visual C++ documentation on asserts.

(Press Retry to debug the application)
------------------------------------------------------------------

実際には、エラーの発生しているFILE名も記載されていたのですが、
会社で作成しているプログラムの為、現在確認出来ません。

本日から出張の為、土曜日に書き込み致します。すみません。

ちなみに使用しているソフトはVC++2005です。

編集 削除
ryo  2011-05-28 01:22:01  No: 72668  IP: 192.*.*.*

そのエラーだとどこかのASSERTで止まっているはず

VisualStudioでデバッグ起動してると思うが
その場合、エラーが出た際、どのASSERTで止まったか確認できる
まずはその場所を特定してみてください

編集 削除
raki  2011-05-29 08:27:37  No: 72669  IP: 192.*.*.*

書き込みが遅れてすみません。

デバックモードで実行した場合に出るDebug Libraryダイアログを
確認したところ、エラーを検出しているFILEは、
…\mfc\wincore.cppとなっていました。

また、プログラムをリリースモードで実行したところ、
ryoさんの最初のご指摘通り、
「Please enter an integer」のメッセージが出ました。

このプログラムでは、ダイアログ上のEDIT BOXに、
演算結果やサーボアンプ等からの外部信号を出力しており、
0.2sec毎のOnTimerでUpdatedata(false)を行って
データを更新しております。

ダイアログ上には、パラメータ入力用のEDIT BOXも有る為、
Updatedata(false)の前にUpdatedata(true)を行い、数値入力を
受け付けられるようにしております。

まとめると、0.2secのOnTimerで、
  Updatedata(true)
  Updatedata(false)
を行っております。

この為、リリースモードで実行時に、EDIT BOXが空白状態になった場合は、
「Please enter an integer」のメッセージが出力され続ける状態に
なってしまいます。

「Please enter an integer」のメッセージが全く表示されないように
来ないでしょうか?また、プログラムの作り方の考え方自体に、
問題有ればご教示お願い致します。

編集 削除