• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:学校PCで問題なくデバッグできるのに自宅PCのくVisual Studioでは同じソースがデバッグできません。)

自宅PCのVisual Studioでデバッグ時にエラーが発生する問題

このQ&Aのポイント
  • 自宅PCのVisual StudioでC++ MFCアプリをデバッグする際にエラーが発生する問題について質問です。
  • 学校PCで問題なくデバッグできるC++ MFCアプリを自宅PCのVisual Studioでデバッグしようとすると、エラーメッセージが表示されます。
  • ソリューションのリビルドやプログラムのリビルドを試してもエラーは解消されず、デバッグ時のみ問題が発生します。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.4

OLE関連のコントロールを使っていませんか? 学校PCではそのOLE関連がレジストリに登録されているが自宅PCでは登録されていないってことでは無いかと

kon_t
質問者

お礼

解決しました!!!! 4番の回答でそういえば…と思いあるソフトをインストールしたらデバッグが通りました!!! 実はIPカメラの制御ソフトを作成していたのですが、メーカーの純正ビューワーソフトをインストールしたところ成功しました。そのソフトはDirectXも絡んでいるようなので、DirectXを入れるだけでも解決するのかは未検証ですが、学校PCにはどれにもビューワーソフトを入れていたのが盲点でした。それにもっと早く気づき補足しておけばみなさんを悩ませずすんだかもしれません。 redfox63様、粘り強い的確なご回答ありがとうございました。

その他の回答 (4)

  • FAY
  • ベストアンサー率49% (95/193)
回答No.5

これ、OSあってますか? >家環境:ノート >Windows XP Pro SP2 >Visual Stuidio 2005 Academic Edition (同じ) 実際はWindows VistaでVista用のアップデートモジュールを あててないとかいうのじゃないですよね・・・

kon_t
質問者

補足

2の補足にVistaビジネスの記述をしたので混乱を招いたかもしれませんが、当初はXP SP2です。 一旦Vistaビジネスをクリーンインストールしましたが現在はまたXPに戻しました。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

アサートが起きた際に『再試行』をクリックすると VSのIDEに制御が移ります ここで 呼び出し履歴などでアプリケーションレベルまで戻ってどこから呼び出された命令が不具合を起こしているのか確認してみましょう 学校PCでMFCウィザードが吐いたスケルトンなら自宅PCでうまく動作するのであれば問題のプロジェクトの部品(コントロールなど)が原因のように思います 動的にコントロールを読み込むLoadLibraryなどを使っていませんか

kon_t
質問者

補足

>アサートが起きた際に『再試行』をクリックすると VSのIDEに制御が移ります とすると、「occcont.cpp」の ASSERT(IsWindow(pTemp->m_hWnd)); という記述の行にブレークポイントが指定されます。 そしてこの行をそのまま検索すると MSDNのページで「 Visual C++ 6.0 でコンパイルされた ActiveX コントロールが、Visual C++ 2005 で開発されたプロジェクトのダイアログ ボックスに埋め込まれると、プログラムが実行時にアサートする原因になる場合があります。このような場合、Visual C++ 2005 を使用して ActiveX コントロールをコンパイルし直します。アサートは、occcont.cpp ファイルのソース内の ASSERT(IsWindow(pTemp->m_hWnd)) 行で発生します。 」 というのが見つかりました。これかな?とは思います。 改めて、学校と家のVSのバージョンを確認しましたが同じようです。なのに家でだけ動かない…。MSDNに目を通しましたが、いまいち解決策が見つけられません…。エクスポートするみたいなウィザードがあれば嬉しいのですが。 >ActiveX コントロールをコンパイルし直します。 には、リビルドであってるような気がしますが動きません。 >呼び出し履歴などでアプリケーションレベルまで戻ってどこから~ 申し訳ないです。スキルがそこまで高くありません…。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

先生に確認してみましょう F:\rtm\vctools … とあるので何かライブラリーを使っているようですよ 作成したプロジェクトは VS2005標準のテンプレートからなのでしょうか? 先生がカスタムテンプレートを作成している可能性はありますよ または 使用しているコントロールに特殊な初期化処理が必要だとか ライブラリ(DLL等)のエラー処理がしっかりやっていないだとか

kon_t
質問者

補足

確かに、ソース(ソリューションファイルを含むディレクトリ)は前任者から別メディアからディレクトリごとコピーして引き継いだもので、1から自分で構築したものではありません。 学校PCは春にXP、VSをクリーンインストールして、適当なディレクトリに件のソースをD&Dで持ってきて修正しています。ここまでは何の問題も発生していません。なのでライブラリーを参照…という絡みの問題ではないような気がします。 追加情報ですが、学校にある別のPC(VSが入ってるノート)にUSBメモリでディレクトリをコピーしてデバッグしてみましたがこれは普通に通りました。 じゃあこの家PCが問題?と行き着きますが、XP入れなおし、VS入れなおしでも解決しませんでした。謎です。 さらに、Vistaビジネス入れなおし、VS入れなおししました。これでもf:\がどうこうと言って止まります。

  • RAPTsong
  • ベストアンサー率42% (74/175)
回答No.1

まずは、Debug モードで「ソリューションのリビルド」を実行してみてください。 それでも駄目な場合、一度ソリューションを閉じた後、.sln ファイルと同じフォルダにある .ncb ファイルを削除してから再度「ソリューションのリビルド」を実行してみてください。 # 重箱の隅 # Release ビルドのことを「リビルド」とは言わないので注意。 # Release Build と Rebuild は区別しましょう。

kon_t
質問者

補足

最初の回答ありがとうございます。 まず、ReleaseからDebugに変更するとVSが固まります。 ご指導のとおり、.ncbを削除するとDebugが選択できるようになりました。その状態でソリューションのリビルドすると正常終了します。 そしてデバッグすると…例のダイアログが出て止まりました。 (プログラム名)のリビルドでも同じです。 #ReleaseとDebugの違い、リビルドはぼやっとはわかります。 #ご指摘ありがとうございます。

関連するQ&A