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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- C言語・C++・C# C#の問題です。 文字列型の配列 s[100] にキーボードから入力された100文字以内の文字列(単 2 2022/06/22 15:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
*をユーザーが入力した数字の数...
-
scanfが2回使えない・・・?;
-
ワードで文字を入力する時の変...
-
正負を反転させて出力するプロ...
-
if文の条件にscanf関数を使うと…?
-
漢字のソートについて
-
数字以外が入力されたらエラー...
-
batプログラム上で文字列を入力...
-
プログラミング初心者です。 Py...
-
プログラムC言語の整数の約数に...
-
C言語について
-
2進数の1の数を数える問題
-
java初心者です。入力されたの...
-
double型が正常に認識されてい...
-
getc 等の違い
-
入力されたとき,何も入力しな...
-
c言語応用で血液型判定プログ...
-
getchar()について 教えてくだ...
-
C言語 逆ピラミッドの作り方
-
C言語scanf_sで何故か2回入力に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
*をユーザーが入力した数字の数...
-
正負を反転させて出力するプロ...
-
数字以外が入力されたらエラー...
-
プログラミング初心者です。 Py...
-
double型が正常に認識されてい...
-
java初心者です。入力されたの...
-
Eclipseコンソール表示を、リセ...
-
scanfが2回使えない・・・?;
-
C言語scanf_sで何故か2回入力に...
-
if文の条件にscanf関数を使うと…?
-
プログラミングの問題です 「金...
-
Linuxで入力待ちなしkeyread関...
-
ワードで文字を入力する時の変...
-
cout関数を使っているのですが...
-
batプログラム上で文字列を入力...
-
Userformの入力順序をタブオー...
-
scanf が無視されます
-
C言語 逆ピラミッドの作り方
-
gets_sがうまく動かない
-
Excel VBAで、Application.Inpu...
おすすめ情報