学校PCで作成しているC++ MFCアプリを自宅PCでも修正できるよう同じくVisual Studioを買ったのですが、同じソリューション、同じソースなのに家PCでだけデバッグ時にエラーが出ます。
学校環境:デスクトップ
Windows XP Pro SP2
Visual Stuidio 2005 Academic Edition
家環境:ノート
Windows XP Pro SP2
Visual Stuidio 2005 Academic Edition
(同じ)
プロジェクトのディレクトリごとコピーし、ソリューションファイルを開いてデバッグすると以下のダイアログが出ます。
Debug Assertion Faild!
Program: c:\プログラム名\debug\プログラム名.exe
File:f:\rtm\vctools\vc7libs\ship\atlmfc\src\occcont\cpp
Line:950
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
(Press Retry to debug the application)
中止 再試行 無視
環境は同じはずですが…。家PCにFドライブはありません。学校PCには仮想ドライブとしてFはありますが何もマウントしていません。家PCのVC++で簡単なMFCアプリを作ると無事デバッグ出来ます。このままではVS買った意味がありません…。
「ソリューションのリビルド」「(プログラム名)のリビルド」してから「デバッグ」してもダイアログが発生します。両リビルド自体にはエラーはでません。デバッグ時のみ出ます。
No.4ベストアンサー
- 回答日時:
OLE関連のコントロールを使っていませんか?
学校PCではそのOLE関連がレジストリに登録されているが自宅PCでは登録されていないってことでは無いかと
解決しました!!!!
4番の回答でそういえば…と思いあるソフトをインストールしたらデバッグが通りました!!!
実はIPカメラの制御ソフトを作成していたのですが、メーカーの純正ビューワーソフトをインストールしたところ成功しました。そのソフトはDirectXも絡んでいるようなので、DirectXを入れるだけでも解決するのかは未検証ですが、学校PCにはどれにもビューワーソフトを入れていたのが盲点でした。それにもっと早く気づき補足しておけばみなさんを悩ませずすんだかもしれません。
redfox63様、粘り強い的確なご回答ありがとうございました。
No.3
- 回答日時:
アサートが起きた際に『再試行』をクリックすると VSのIDEに制御が移ります
ここで 呼び出し履歴などでアプリケーションレベルまで戻ってどこから呼び出された命令が不具合を起こしているのか確認してみましょう
学校PCでMFCウィザードが吐いたスケルトンなら自宅PCでうまく動作するのであれば問題のプロジェクトの部品(コントロールなど)が原因のように思います
動的にコントロールを読み込むLoadLibraryなどを使っていませんか
この回答への補足
>アサートが起きた際に『再試行』をクリックすると 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 コントロールをコンパイルし直します。
には、リビルドであってるような気がしますが動きません。
>呼び出し履歴などでアプリケーションレベルまで戻ってどこから~
申し訳ないです。スキルがそこまで高くありません…。
No.2
- 回答日時:
先生に確認してみましょう
F:\rtm\vctools … とあるので何かライブラリーを使っているようですよ
作成したプロジェクトは VS2005標準のテンプレートからなのでしょうか?
先生がカスタムテンプレートを作成している可能性はありますよ
または 使用しているコントロールに特殊な初期化処理が必要だとか
ライブラリ(DLL等)のエラー処理がしっかりやっていないだとか
この回答への補足
確かに、ソース(ソリューションファイルを含むディレクトリ)は前任者から別メディアからディレクトリごとコピーして引き継いだもので、1から自分で構築したものではありません。
学校PCは春にXP、VSをクリーンインストールして、適当なディレクトリに件のソースをD&Dで持ってきて修正しています。ここまでは何の問題も発生していません。なのでライブラリーを参照…という絡みの問題ではないような気がします。
追加情報ですが、学校にある別のPC(VSが入ってるノート)にUSBメモリでディレクトリをコピーしてデバッグしてみましたがこれは普通に通りました。
じゃあこの家PCが問題?と行き着きますが、XP入れなおし、VS入れなおしでも解決しませんでした。謎です。
さらに、Vistaビジネス入れなおし、VS入れなおししました。これでもf:\がどうこうと言って止まります。
No.1
- 回答日時:
まずは、Debug モードで「ソリューションのリビルド」を実行してみてください。
それでも駄目な場合、一度ソリューションを閉じた後、.sln ファイルと同じフォルダにある .ncb ファイルを削除してから再度「ソリューションのリビルド」を実行してみてください。
# 重箱の隅
# Release ビルドのことを「リビルド」とは言わないので注意。
# Release Build と Rebuild は区別しましょう。
この回答への補足
最初の回答ありがとうございます。
まず、ReleaseからDebugに変更するとVSが固まります。
ご指導のとおり、.ncbを削除するとDebugが選択できるようになりました。その状態でソリューションのリビルドすると正常終了します。
そしてデバッグすると…例のダイアログが出て止まりました。
(プログラム名)のリビルドでも同じです。
#ReleaseとDebugの違い、リビルドはぼやっとはわかります。
#ご指摘ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 7 Windows7でMicrosoft VirtualPC2007 SP1を使用する 9 2022/11/17 13:12
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- Bluetooth・テザリング usb_c分岐ケーブル 2 2022/12/12 07:42
- C言語・C++・C# Switch向けにpcでc言語でゲームを作っているのですが、開発環境はWindows10のvisua 1 2022/04/02 07:04
- その他(コンピューター・テクノロジー) WO mic のUSB接続でエラーが出ます。 1 2022/07/09 09:58
- タブレット USBデバッグの有効無効の切り替えが見つからない 1 2023/05/11 12:07
- Windows 10 Visual StudioとVisual C++ Build Toolsについて 1 2023/04/16 03:42
- Outlook(アウトルック) outlookの送信エラーについて 1 2022/05/13 12:04
- その他(プログラミング・Web制作) x86_32のGASの擬似命令 3 2023/06/07 19:55
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DLL参照時に指定されたモジュー...
-
ブレークポイントは現在の設定...
-
VC6 でのデバッグ時にブレーク...
-
visual studio 2008 のデバッグ...
-
VC6.0のデバッグで1つ以上のブ...
-
SQLserverからのデータ取得
-
VC++6の「プロセスへアタッチ」...
-
VBでブックマークを保存する方...
-
VBGファイルって?
-
ソリューションって何ですか
-
eclipseでデバックするとエラー...
-
VB6 ClassにてEnum(列挙型)の...
-
VC++でDeugモードOKで、Release...
-
ビルド時のエラー(書き込みで...
-
Eclipseのデバッグ時にブレーク...
-
vbpが開けない!!
-
プログラムへの画像埋め込み(?
-
C# リソースに埋め込んだ.exeフ...
-
python エラー
-
エクセルのエラーメッセージ「4...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
デバッグとビルドは何が違うの...
-
eclipseでプログラムが実行でき...
-
visual studio2019でデバッグが...
-
eclipseでデバックするとエラー...
-
デバッガでステップ実行してい...
-
Visual studio2017で、2回目の...
-
C言語での開発でエラーが出て困...
-
DLL参照時に指定されたモジュー...
-
Eclipseのブレークポイントが○...
-
VB.netを実行するとデバック プ...
-
visual studio 2008 のデバッグ...
-
ソリューションをまたがるデバ...
-
Visual Studio 2017 ビルドする...
-
Release版のexeが動きません
-
Visual C#で、usingが出来ない...
-
vb ver6 でformat文やTrim文の...
-
ブレークポイントは現在の設定...
-
VB6.0を使用しています
-
visual studio 2019 についての...
-
Visual Studio 2008 SP1について
おすすめ情報