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

VC++ で、他人の作ったソースコードをビルドして実行してみています。
(WinPcapのデベロッパ向けのライブラリを使った、サンプルプログラムです。)

VC++自体、あまり理解が深くないのですが、
「#include <」まで書くと、「ヘッダファイル名が表示される」プロジェクトと、「そうではない」プロジェクトがあります。
「そうではない」方のプロジェクトだと、ビルド時にincludeするライブラリが足りないとか、そんな感じのエラーが表示されます。

ぱっと見の違いは、「ヘッダファイル名が表示される」プロジェクトの場合は、
ソリューションエクスプローラに、「外部依存関係」というフォルダのショートカットがあり、ライブラリがどっさりあります。

「そうではない」プロジェクトについても、「#include <」で、ヘッダファイルを表示してくれるようにしたいのですが、どの様にすればよいのでしょうか?★

プロジェクトのプロパティの、
C++>プリプロセッサ>プリプロセッサの定義
リンカー>入力>追加の依存ファイル
はどちらのソースも同じにしたのですが…。

A 回答 (1件)

カギ括弧形式の#include<xxx>は、VC++の場合プロジェクト プロパティの



1.「C/C++>全般>追加するインクルード ディレクトリ」で設定されているディレクトリ
2.「構成プロパティ>VC++ディレクトリ>インクルード ディレクトリ」で設定されているディレクトリ

の順に走査されます。
どちらかに、必要なインクルードファイルが含まれているディレクトリを設定してやれば、
インテリセンスの候補にも反映され、コンパイルも通ると思われます。


ちなみに、
「C++>プリプロセッサ>プリプロセッサの定義」は、
例えば、ソースコードの何処にも#define _DEBUGと書いて無くても、_DEBUGが定義されているようになる機能です。

「リンカー>入力>追加の依存ファイル」は、
静的リンクライブラリ(.lib)を走査するディレクトリの設定です。

どちらも#includeとは無関係です。

この回答への補足

できました。

インクルードの補完は、VC++2010から実装された機能みたいで、
2010でビルドできないので、
2008を入れて、そちらで作業していたことで、補完が働いていませんでした。
当然ですね…。

失礼しました。そしてありがとうございました。

補足日時:2011/10/28 17:03
    • good
    • 0
この回答へのお礼

レスありがとうございます。

>1.「C/C++>全般>追加するインクルード ディレクトリ」で設定されているディレクトリ
やってみましたが、変化おきなかったようです。

「#include <」で、「stdio.h」すら出てこないので、インテリセンスの設定がOFFになっているのかと確認してみましたが、設定はONでした。

調べてみます。

お礼日時:2011/09/25 18:07

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