C++でGUIプログラムを作成しています。
char FN[200];
FILE *fp;
ダイアログボックスで色々な値を入力
↓
ファイル保存ダイアログでファイルを選択(FNに代入)
↓
MessageBox(NULL,FN,"",NULL);
fp=fopen(FN,"w");
MessageBox(NULL,"","",NULL);
fclose(fp);
MessageBox(NULL,"","",NULL);
のようにすると、1回目のダイアログボックスにファイル名が出たあと、強制終了してしまいます。
値を入力するダイアログボックスに文字列を入力していると強制終了し、文字列でなく数字を入力、または空欄にしておくと強制終了しないようです。
変数がかぶっているかもしれないと思いfpとFNでGREPしましたが、怪しいと思われるところはありませんでした。
場所的にfopenでエラーになっていると思うのですが、原因は何でしょうか。
No.2ベストアンサー
- 回答日時:
# BCC Developperは使ってないので操作は不明。
# BCCならBorlandサイトからデバッガが入手できるので、
# 最低でもそれで対応は可能なはずです。
プロジェクト/makeの設定問題なども考えられますので、
設定内容や使っているDLL情報も必要かもしれません。
最小限の再現コードを作成して、提示してください。
可能性の問題だけですが。
・MessageBoxが悪さをしている。
・OutputDebugStringやTRACEなど、別の手段で確認する。
・FNがローカル変数などになっており、利用時には無効になっている。
・FNの定義位置(クラスのメンバの場合、クラスの用法も)や、
ダイアログ入力部のソース等を提示してください。
・FNが正しく終端していない。
・MessageBoxの表示もおかしくなる可能性がありますが。
※MessageBoxの第四引数はUINTなのでNULLは不適かと。
・FNがオーバフローしている。
・パスは199byte以下ですか。
・バックグランドで並列処理があり、ぶつかっている。
・環境設定でCのライブラリが適合していない。
・マルチスレッドなのにシングルスレッド用を使ってるとか。
・例えばVC専用のサードパーティDLLを使っていたり、
静的/動的リンクの混在など。
・CreateThread APIで作成したスレッド内に処理を書いている。Cの初期化が不完全。
・VCの例だと_beginthread等にしないとC標準関数の動作がおかしくなります。
> 最小限の再現コードを作成して、提示してください。
不必要な部分を削っている内に、
p=new List;
を見つけたので、
p=new List[20];
にすることで解決しました。
お騒がせして申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数字以外が入力されたらエラー...
-
プログラミング初心者です。 Py...
-
Userformの入力順序をタブオー...
-
Eclipseコンソール表示を、リセ...
-
getchar()について 教えてくだ...
-
cout関数を使っているのですが...
-
"scanf"でエンターで改行させな...
-
scanf("%s", buf);でスペースを...
-
*をユーザーが入力した数字の数...
-
入力値が1以下、かつ数字以外の...
-
C言語scanf_sで何故か2回入力に...
-
正負を反転させて出力するプロ...
-
Cプログラム
-
C言語でgetchar();が上手く使え...
-
プログラミングC言語について
-
batプログラム上で文字列を入力...
-
入力する数字のサイズ制限について
-
C言語の非標準コンソール関数ge...
-
関数の値(scanf)
-
Excel VBAで、Application.Inpu...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正負を反転させて出力するプロ...
-
プログラミング初心者です。 Py...
-
数字以外が入力されたらエラー...
-
Eclipseコンソール表示を、リセ...
-
Excel VBAで、Application.Inpu...
-
*をユーザーが入力した数字の数...
-
java初心者です。入力されたの...
-
Linuxで入力待ちなしkeyread関...
-
batプログラム上で文字列を入力...
-
WindowsでEOF
-
Userformの入力順序をタブオー...
-
コマンドプロンプトからのEOFの...
-
EDITコントロールで入力できる...
-
VisualStudio2019のコードアナ...
-
電卓の小数点
-
Eclipseでコマンドラインを入力...
-
小数か整数かを判定する方法
-
cout関数を使っているのですが...
-
UWSCで変数をキー入力
-
ワードで文字を入力する時の変...
おすすめ情報