プロが教える店舗&オフィスのセキュリティ対策術

Visual C++ Express Edition 2008をインストールしました。

さて何の変更もせず、デフォルトの状態でもデバッグがグレーアウトしていて選択できません。(ctrl+)F5を押してみてもだめでした。

初歩のhello world!も書いてみましたがやはり無理です。

アンインストールが、またインストールしてみましたが無理でした。C++ Exp Ed 2005でも試したことがあるのですがそれも無理でした。

試しにレジストレーションもしてみましたが効果ありません。

Dell Inspiron 700m
Win XP home. SP3
Intel Pentium M 1.80Ghz
496 RAM


関係はないはずですが、以前active basicを使っていたときにはデバッグができていました。

誰か解決策を知っている方、ご指導お願いします。

A 回答 (2件)

というか、VC++のIDEではプロジェクト(VC++ 6.0以前)か


ソリューション(VC++ 2002 .net以降)がないとコンパイルやビルドさえ
できないはずですが...。
(作成するか聴いてくるはず)

IDEではプロジェクトやソリューションの設定でいくつかの
ビルドオプションが設定できます。
デバッグモードやリリースモードはそういったビルドオプションの
一種です。
他にもMBCS版/Unicode版とかx86版/x64版などのような
ビルドオプションもあります(それぞれが個別に設定)。

コマンドラインからやる場合はコンパイラへの引数で切り換えます。
(IDEはコンパイラなどにそういったオプションを渡しているだけです)
    • good
    • 0

デフォルトでは「リリース状態」になっていて、ライブラリなどは通常用のが使用され、デバッグ用アドレス情報も出力されません。



プロジェクトのオプションかどこかに「リリース状態」から「デバッグ状態」に切り替える設定があります。

デバッグ状態に切り替わると、ライブラリはトレースデバッグ専用のライブラリに切り替わり、プロジェクトを再構築する事により、デバッグ用のアドレス情報も出力され、実行ファイルの中にも外部シンボルが埋め込まれ、トレースデバッグが可能になります。

basicは「逐次コンパイル」で実行する1行ごとに構文解析が行われますので、何時でもトレースデバッグが出来ます。

しかし、CやC++では「一括コンパイル」を行いますので、1行ごとの構文解析は行われません。

実行し始めると、プログラムが終了するまで「行ったっきり」です。無限ループを作ってしまうと「行ったっきり、永久に止まらない」なんて事に。

そこで、何がしかの仕掛けを施し、トレース実行する場合は「ここまで実行したら中断してね」と、中断用の特殊な命令コードを埋め込みます。

この時「この行に対応するのは、機械語の、この命令で、ここのアドレス」ってのが判ってないと、適切な位置に中断用の命令コードを埋め込む事が出来ません。

この「ソースコードのこの行は、機械語では、このアドレスから、このアドレスまで」って言う情報が、前述の「デバッグ用アドレス情報」です。

これが無いと、プログラムは「行ったっきり」になってしまい、デバッグ出来ません。

この回答への補足

分かりやすい説明をありがとうございました。

プロジェクトを製作するとデバッグが選択できるのですが、プロジェクト内ではなく.cppのファイルだけで編集を始めるとデバッグが選択できません。プロジェクトして編集を始めたのではないので、プロジェクトのオプションというメニューもありません。

インターネットで見つけられるチュートリアルなどをみると、あたかもデバッグができるかのように書いてあるのですが、それは無理なのでしょうか。

質問した後海外も含めかなりの数のサイトなどで検索したのですが、どうもこの問題だけは見つかりません。初歩過ぎて問題にもされないようなことだったのでしょうか。

補足日時:2008/11/28 14:58
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!