• ベストアンサー

CListView

 いつもお世話になっています。 OS Windows 2000 VC++ 6.0 MFC で、CListView を使ったソフトを書いています。  デバッグ版では、 データファイルを新規作成して、1つだけ データを追加したとき、 1行だけ表示されます。  リリース版にすると、 2行表示されてしまいます。 このファイルを一度閉じてから 再度開くと、 どちらでも正常に1行のみ表示されます。  どんなところに注意して デバッグしたら問題点が発見できるでしょうか? ヒントをいただければ幸いです。 よろしくお願いいたします。

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

  • ベストアンサー
回答No.1

デバッグ版でコンパイルして、データを追加するところ(例えば、CListCtrl::InsertItem()関数を呼び出しているところ)に、ブレークポイントを設定して、 メニューの「ビルド」-「デバッグの開始」を実行しましょう。 もし、2回呼び出されることが、分かったら、 メニューの「表示」-「デバッグウィンドウ」-「コールスタックの表示」で、どこから呼び出されているか確認してみましょう。

uyama33
質問者

お礼

CListCtrl::InsertItem() が 2回呼び出されていました。 これで、修正できそうです。 ありがとうございました。

関連するQ&A

  • デバッグ

    いつも、教えていただいています。 VC++6.0 OS Win2000 で、メーラーを作っています。 アクティブな構成の設定で ○○-Win32 Release を選び、 プロジェクトの設定で リンクのところの デバッグ情報を生成する にチェックを付けると リストコントロールに 新しい行がきちんと表示されるのですが、 このチェックを外すと、新しい行が表示されません。 バグを探す方法な有りませんか? よろしくお願いいたします。

  • VC++6.0 リリース版で異常終了

    VC++6.0 Professionalについての質問です。 デバッグ版では正常に動作するのですが、リリース版だと特定の操作で例外処理が発生して止まってしまいます。 特定の操作とは「ファイルを読み込もうとしたとき」と「ある特定の描画処理をOnDrawにさせたとき」の2つです。 デバッガで処理を追ってみましたが、どちらの操作でもソース上で異常終了はしていないようなので問題点がはっきりせず、どこに手をつければいいのやら見当がつきません。 こういうパターンは何が典型的な原因になるのでしょうか。

  • MFCとSTLの併用

    MFCとSTLの両方を使おうとしたところ、MFCのDEBUG NEWとSTLがかぶってしまうようで、デバッグ版のビルドにおいてエラーがでてしまいます。リリース版では問題ないようです。どのように解決したらいいのでしょうか。ぜひご教示ください。

  • エラーDlg「An invalid argument was encountered」について

    はじめまして。 表題のエラーメッセージについて質問させてください。 VC++ 2005 MFC で開発をしております。 OS Windouws 2000 処理としましては複数のスレッドを走らせて Cimageを作成して描画するといった仕様です。 VCより実行後、 デバッグモードの場合、 エラーDlg「~.exe によってブレークポイントが発生しました」 が表示され、継続ボタンを押下すると エラーDlg「An invalid argument was encountered」 が表示されます。 リリースモードの場合 エラーDlg「An invalid argument was encountered」 が表示されます。 両者とも (デバッグモードの場合、警告無視)しばらくすると エラーDLGは発生しなくなります。 本現象はどのような場合に発生するのでしょうか? また解決の糸口になるような情報がございましたら 教えていただきたく思います。 同件と思われますが、 Windows XP の場合、 配布パッケージ形式(リリース、デバッグ版ともに)で実行しますと、 問題なく動作します。 Windows 2000の場合、 配布パッケージ形式(リリース版)で実行しますと エラーDlg「An invalid argument was encountered」 が表示され、OKボタン押下で継続して処理が続くのですが、 「エラーが発生したため、~.exeを終了します。プログラムをもう一度開始する必要があります。 エラー ログを作成しています。」 と表示され、アプリが落ちます。 配布パッケージ形式(デバッグ版)で実行しますと 問題なく実行できます。 ※補足 開発環境(VS 2005)が入ってるPC(Windows 2000)の場合は エラーDlg「An invalid argument was encountered」は表示されますが、 その後、正常に動作します。 Windows 2000の場合に本エラーが発生するようです。 かなりはまっています。 どなたかお詳しい方がおりましたら ご教授お願い致します。 以上になります。 よろしくお願い致します。

  • リリース版にすると例外エラーが発生する

    同じような質問がないか検索したのですが、ないようなので質問させてもらいます。 Visual C++2010 Expressを使ってプログラムを書いている、アプリケーション作成初心者です。 デバッグが一区切りしたため、リリース版でビルドし実行したところ、コンストラクターの 内部で、下記のエラーが発生しました。 ”アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。” ”使用されたパラメータが有効ではありません” デバッグ版では、発生しません。 エラーが発生するコードは、以下の行です。 InitializeComponent(); Blank = gcnew Bitmap("Blank.png"); この、Bitmapをgcnewする行で、上記のエラーウィンドウが表示されます。 ビルドパラメータは、リンカ入力の追加の依存ファイルに"Wsock32.lib"が指定されています。 他は、変更していません。 メモリの問題でしょうか? よろしくお願い致します。

  • ActiveXの呼び方

    vc++6.0でMFC ActiveX ControlWizardを使用しているのですが、 1つメソッドを追加し、そのメソッドをIEから呼び出すことって 可能でしょうか? またパラメータ(引数)などがあっても平気でしょうか? ちょっとしたヒントでも良いので教えて下さい。 よろしくお願いします。

  • 【VC++2005(CLR)】データセットのデータを直接変更したときのデータチェックについて

    VC++2005初心者です。 現在、VC++2005 Express Edition、CLRでプロジェクトをつくって コーディングしています。 CSVファイルをデータセットを使用して画面に表示していますが、 ユーザが直接、そのデータセットを編集できるようにしようと思います。 この場合、ユーザが入力したデータがそのセルに対して有効なセルか (型があっているか、などの条件を満たしているか)チェックを したいのですが、具体的にどのようにしたら宜しいでしょうか。 上記を内容に関連して、ユーザが新規行を追加した場合、 その行が有効なデータかチェックする方法を教えて頂けませんでしょうか。 お手数ですが、よろしくお願いします。

  • プロジェクトのVC6からVC9の移行時のエラー

    現在、VC6で作成したプロジェクトをVC9に移行しています。 そこで、Debug版でコンパイルするとリンク時に下記エラーがでます。 //下記が、エラー内容 1>LINK : fatal error LNK1104: ファイル 'mfc42d.lib' を開くことができません。 Release版でコンパイルすると発生しません。 他の質問で同じような内容がありましたが、その対策内容を実行しようとするも、よく解りませんでした。 //////////////下記が参考にした解決策等////////////////////////////////// 今試しにVC6で・MFCアプリ(DLL共有) ・SDIアプリ・そのほかはデフォルトという条件で作って、VC2005 Proに変換してみたところ、問題なくコンパイル/リンクまでできました。もしかしてプロジェクトの中(ソリューションのツリーの中)に明示的にmfc42d.libを登録しているということはありませんか?vcのプロジェクトは"プロジェクト名.vcproj"で、単なるテキストファイルなので、その中もよく見てください。 /////////////////////////////////////////////////// 他に解決策はありますか?

  • エディットボックスの改行について

    よろしくお願いいたします。 環境 WIN98 VC++6.0 MFC にて 改行が可能なエディットボックスのデータをテキストファイルに保存すると、エディットボックスと同様に改行されて保存されます。 ファイルからデータを読出し、エディットボックスに表示する場合もちゃんと改行されていて問題ありません。 ここで、エディットボックスが2つあり、それぞれのエディットボックスのデータが2行あったとすると、ファイルには4行保存されます。 次にファイルからデータを読出し、エディットボックスに表示する場合、1個目のエディットボックスのデータが2行と分かっていれば良いのですが、そうでない場合は何行読み出してエディットボックスに表示すれば良いか分かりません。 そこで、1個目のデータを保存する時に、最終行の次の行にendという文字を保存することにしました。 これで、読み出すときはendを目印に必要な行数を読み出せます。 しかしながら、エディットボックスの文字の中にたまたまendが使われるとうまく行きません。 長くなりましたが、このような場合、一般的にはどのようにして対処すれば良いのでしょうか? お分かりの方よろしくお願いいたします。

  • 上書き保存しないでデータを保存したい。

    外付けHDDに大切なデータを保存しているのですが、 新たにいくつかのファイルを追加したそのデータを再度保存しようとすると、 「フォルダに含まれるファイルが同じ名前の場合、新しいファイルで上書きされます。」と表示されます。 上書きされると、一部ファイルに何らかの破損があった場合、正常なデータが破損データに書き換わってしまうことを心配しております。 何とか追加ファイルのみを加える形でデータ保存する方法はないでしょうか? よろしくお願い致します。

専門家に質問してみよう