- ベストアンサー
includeファイルの読み込み追加の際のコインパイルエラー
VC初心者で初めて質問させて頂きます。 仕事でVC++6.0にて開発を行っています。 既設で正常に動作しているプロジェクトに対して ロジックを追加しなければいけないのですが、 その際、同プロジェクト内で定義されていない 変数を使用したく、includeファイルの 読み込みを追加(#include "aaa.h")し、参照しようと したのですが、以下のようなコンパイルエラーが 発生してしまいます。 '***' 定義されていない識別子です。 ***:追加したincludeファイル内にて定義されている 変数 紐付けがうまくいってないと思うのですが プロジェクトの設定画面にて、インクルードファイル のパスを確認したところ既設にてパスは存在して いました。 同様に依存関係を確認したところ、必要な ヘッダファイルは全てありました。 関係あるかはわかりませんが、クリーン→ビルド しても状況は変わりませんでした。 パスが通っているなら単純にインクルードファイルを 読みこんで参照すればいいと思うのですが、 何か他に必要なことがあるのでしょうか 初めての質問ということで、質問の仕方が 分かりづらい点もあるかと思いますが 宜しくお願い致します。
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (8)
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
- jacta
- ベストアンサー率26% (845/3158)
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
- chie65536
- ベストアンサー率41% (2512/6032)
- SAYKA
- ベストアンサー率34% (944/2776)
関連するQ&A
- VC++で、ソースファイルを追加すると、コンパイルエラーになります。
こんばんは。 VC++6.0を使い、C言語の勉強をし始めました。新規プロジェクト→Win32 Console Application を作成し、簡単なプログラムを作成しています。 最初からあるソースファイルはコンパイル、実行できます。しかし、後から自分で追加したソースファイルは error C2065: 'printf' : 定義されていない識別子です。 という、エラーが出てしまいます。何かが、関連付けられていないのでしょうか?それとも、新規プロジェクトを作成しなければいけないのでしょうか? 私は、VC++が初めてなので、ぜんぜんわかりません。よろしくお願いします。
- ベストアンサー
- C・C++・C#
- 自作インクルードファイル
こんにちわ。 いまVC++6.0で開発しようとしています。 自作のincludeファイルを作成し,親プログラムをコンパイルしようと しますが,そのincludeファイルが親プログラムと同じパスに あるときはコンパイルできますが, 別のフォルダに置くと, fatal error C1083: インクルード ファイルがオープンできません。 'XXXXXX.H': No such file or directory cl.exe の実行エラー と出てしまいます。 そこで[設定]の"インクルードファイルのパス"の箇所を 自作インクルードファイルがある場所に設定したのですが, やはり同じエラーメッセージが出ます。 どうすれば読めるようにできるのでしょうか? 教えてください。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- atlstr.hのインクルードによるエラーについて
atlstr.hのインクルードにより生じるエラーについて質問させて頂きます。 開発環境は、Visual Studio 2008 Professional Editionです。 (Visual Studio 2008におけるプログラミングは正直まだ慣れておりませんorz) Visual Studio 2008製品内のVisual C++ 2008において、以下の操作を行いプログラムを 実行すると、コンパイルは通るのですが、プログラム実行後にエラー音が一度鳴るだけ でフォームが表示されないというエラーが発生します。その際、タスクマネージャでプロセ スを確認するとプログラム自体は動いているようで、”AtlStrTest.exe”というプロセスが実 行されているのが確認できます。 1.[ファイル]->[新規作成]->[プロジェクト]で新しいプロジェクトダイアログを表示させる 2.[Visual C++]->[CLR]->[Windows フォーム アプリケーション]を選択し、プロジェクト名 ”AtlStrTest”でプロジェクトを新規作成 3.プロジェクト内に生成された”atdafx.h”の”// TODO: プログラムに必要な追加ヘッダー をここで参照してください。”というコメントの下に#include <atlstr.h>の一行を追加する 原因を分析しようにも、ヘッダをインクルードしただけでエラーが起きるという状況がは じめてなので、途方に暮れている状態です。 大変恐縮ですが、このatlstr.hのインクルードによるエラーがなぜ発生したのかについて、 どなたかアドバイスよろしくお願いいたします。 【関連情報】 同様の操作を、Win32コンソールアプリケーションで実行したときは、このようなエラーは 出ませんでした
- ベストアンサー
- C・C++・C#
- VC++ includeファイルについて
VC++2005でグローバル変数を利用したいと考えています。 そこで、kaisu.hというヘッダーファイルにint n=0;と書いてあります。 そこでプログラムでは、 #include "kaisu.h" しているのですが、エラーがどうしても出てしまいます。 エラーは以下の通りなのですがどのようにすれば良いのでしょうか? error LNK2005: "int n" (?n@@$$Q3HA) は既に Form2.obj で定義されています。 場所::試作品.obj エラー 2 fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。
- ベストアンサー
- C・C++・C#
- MFCのインクルードファイルについて
VC++のMFCについて教えていただきたいのですが。 VC++のプロジェクトには、MFCとかコンソールアプリとかあると思うんですが、普通のWinアプリやコンソールアプリにはなく、MFCで標準的にインクルードされるファイルってどんなものがあるのでしょうか。 今、コンソールアプリでコンパイルしたらエラーとなり、MFCでするとエラーなくコンパイルできます。 よろしくお願いします。
- 締切済み
- C・C++・C#
- VS2010追加のインクルードディレクトリについて
ソリューションと同階層にソースファイルやヘッダーファイルを散乱させるのは汚いなと思い、フォルダに分けました。 例) .slnの階層 mainフォルダ main.h main.cpp sampleフォルダ sample.h sample.cpp abcdフォルダ abcd.h abcd.cpp efghフォルダ efgh.h efgh.cpp するとヘッダーをインクルードする時にパスが増えてしまうのも嫌だなと思って、 プロパティ C/C++ 全般 追加のインクルードディレクトリー で作ったフォルダを全て指定しました。 そうしたら一応 main.cpp で #include "sample.h" だけで通るのですが いつも #include "s まで打つとsample.hが候補で出てきてたのですが出なくなってしまいました。 代わりに当然といえば当然ですが #include "sample/sample.h" は候補に出てきます。 追加のインクルードディレクトリーをしても 候補は直接出てくるようには出来ないのでしょうか? パスを全部書いてしまうと追加した意味がありません… これと同様の質問なのですが、 abcd.cpp で main.h をインクルードしたい時も 候補には出ず、../を打って出てくると思うのですが こちらも追加のインクルードディレクトリをしても直接出るようには出来ないのでしょうか? なにか変なことを言ってるような気がしてきましたが よろしければ教えて下さい。
- ベストアンサー
- その他(プログラミング・開発)
- VisualC++2005ExpressEditionBeta2にてインクルードファイルのディレクトリを登録したいのですが..
「Visual C++ 2005 Express Edition Beta2」にて、[ツール] -> [オプション] -> プロジェクトおよびソリューション-> VC++ディレクトリ にある「ディレクトリを表示するプロジェクト」の中からインクルードファイルを選択しても何も反応がありません。 インクルードファイルのある場所を登録したいのですが、この方法では登録できないのでしょうか? よろしくお願いします。
- ベストアンサー
- C・C++・C#
- コンパイルエラー「include ファイルを開けません」
あるプログラムをコンパイルしたところ、 下記コンパイルエラーが発生しました。 ヘッダファイルが開けないようなのですが、 これは自分の開発環境に必要なファイルが足りないのでしょうか? 解決する方法が分からないので、ご存知の方おられましたら ご教示お願い致します。 環境はVC++2005でフルインストールしています。 fatal error C1083: include ファイルを開けません。'WtsApi32.h': No such file or directory
- 締切済み
- C・C++・C#
- 【SSI】include file、include virtualが動作しない
htmlはほぼマスターしているのですが、SSIは超初心者です。 標記の通り、include file、include virtualを試しているのですが、参照先のファイルが表示されません。サーバにはアップロードしておらず、ローカルで確認しているのですが、これでは動作しないのでしょうか。 --index.shtml <html> <head> </head> <body> <!--#include file="0000.html" --> ... <!--#include file="0001.html" --> </body> </html> --0000.html <html> <head> </head> <body> あああ </body> </html> 情けない質問ですが、よろしくお願いします。
- ベストアンサー
- HTML
- 複数プロジェクトをビルドしたとき、DLLに新しく追加したClassのみがリンクエラーになる
VC++6.0上で、複数の関連するプロジェクトをすべてビルドしたときのリンクエラーで悩んでいます。 現在、ワークスペースには、以下の複数のプロジェクトがあります。 ・Mainとなるプロジェクト ・上記のMainプロジェクトがDependしている、DLLのプロジェクト 問題は、DLLプロジェクトに新しいClassを追加したところ、単体でビルドすると成功するにもかかわらず、MainプロジェクトをActiveにしてリビルドしたときに、新しく追加したClassだけが下のように未解決にされてしまうということです。 ”error LNK2001: 外部シンボルXXX(追加したクラスのコンストラクタ)は未解決です” このClassはDLLの内部で使用されており、Mainプロジェクトから直接呼ばれるClassではありません。また、このClassの使用箇所をDLLのソースからコメントアウトすると、リンクエラーは解消されます。 VC++に不慣れかつ、他人の作ったプロジェクトなこともあり、現在の設定内容がいま一つわかっていないところがあります。問題はそのあたりだと思うのですが、はっきりしません・・・。 調べてわかっていることは、以下です。 ・Mainプロジェクトから呼ばれるDLLのHeaderファイルにはパスが通っている。 ・Mainプロジェクトから呼ばれるDLLのLibraryにはパスが通っている。また、#pragmaによりリンクされている。 ・Mainプロジェクトから呼ばれるDLLにはパスが通っている。 ここを確認してみたらどうか?など、ヒントをもらえたらありがたいです。 よろしくお願いいたします。
- ベストアンサー
- C・C++・C#
お礼
返事が遅くなってしまいました。 回答ありがとうございます。 初心者である私にとって非常に分かりやすく説明してくださって 感謝しております。 おかげさまで問題は解決いたしました。 結論からいいますと >・メンバーが protected: である以上、このメンバーを参照したくな>るようなプログラムは設計的に間違っている。 ご指摘の通り設計的に誤っておりました。 考えてみれば、特にprotectedなメンバ関数などを他のプロジェクト のクラスから使用するなんておかしいですよね 調査したところロジックを追加するクラスのインクルードにて 同様なprotectedなメンバ変数・関数が用意されており、 それらを使用すればよいというなんともがっくりな おちでした。 では改めてありがとうございました。