- ベストアンサー
【C++】使わないinclude
(1)使わないincludeをチェックしたいです。 (できれば前方宣言しているclassも) visual studioを使っていますが、 visual studioではなく、ツールでもいいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
関連するQ&A
- include無しにclassが書けない
粗末な質問タイトルで申し訳ありません。 Visual C++2010で、includeを書かずにclass宣言を行おうとすると「Error:PCH警告」が発生します。 この理由をご教授ください。 IntelliSense: PCH 警告: 適切なヘッダー停止位置が見つかりません。 というエラーメッセージが表示されるのですが、これはプロトタイプ宣言がないときに発生する警告らしいですね。私が書こうとしているソースコードを次に示します。 -----main.cpp---- class TestClass {}; int main(void) { return (0); } ----------------- このソースで、"class"の部分に赤波線が引かれて先述のエラーメッセージが表示されます。 このソースの先頭に#include<iostream>なり#include<stdlib.h>なり何かインクルードを記述すると警告はなくなります。 しかしクラスはその枠のみですし、ライブラリ関数も何も使用していないのでとくに必要なインクルードファイルも何もないと思うのですが、どうしてこのようなエラーが発生するのでしょうか。 あと、蛇足になりますが、本来はクラス宣言部分を別のヘッダーファイルに分けたいのです。 クラス宣言部分を別のヘッダーに分離してヘッダーの先頭に #pragma once を記述するか、分離したヘッダをmain.cpp内でインクルードしてもエラーは解消されます。 (何からもインクルードされなかったらエラーになる) もう何が何やらさっぱりわからないです><
- ベストアンサー
- C・C++・C#
- IncludeではなくClassで宣言するケース
C++で、IncludeではなくClassで宣言すべきとき/Classで宣言した方が良いときとはどのようなときなのでしょうか? ※クラスの相互参照のケース以外について知りたいです。
- ベストアンサー
- C・C++・C#
- C++ includeファイルの検索
以下のサイトを参考にC++の勉強をしています。 http://www.kab-studio.biz/Programing/Codian/MxA/09.html 残念ながら上記サイトにはどのファイルをインクルードすれば いいのか記述されておりません。Visual C++ 2008 Express Editionを 使用しているのですが、インクルードファイルを自動的に検索して ソース上に挿入するような機能はないのでしょうか?
- ベストアンサー
- C・C++・C#
- Visual Studio 2008コマンドプロンプトのinclude
Visual Studio 2008コマンドプロンプトのincludeファイルのパス設定について、教えてください。 C言語で書かれたOpencvのサンプルコード「ヒストグラムの描画」を実行するとエラーが出ます。 http://opencv.jp/sample/histogram.html#hist 「fatal error C1083: includeファイルを開けません。'cv.h':No such file or directory.」 画像を表示する、という別のコードはVisual Studioで実行できましたので、Visual Studioの環境設定は正常ではないかと思います。 環境変数のパスの設定や(マイコンピュータ→システムのプロパティ→詳細→環境変数)、Visual Studioでのライブラリやインクルードファイルの設定も完了しており(ツール→オプション→プロジェクトおよびソリューション)、Visual Studio 2008のIDE環境でビルトすると、別のサンプルコードは実行できました。このふたつめのサンプルコードは一瞬コマンド画面が表示されて、何も結果が出ずに消えてしまいます。 なぜでしょうか? D/Lし直したり、設定しなおしましたが、事象は変わらずとても困っています。 もし何かお心当たりがあればぜひ教えてください。 どうぞ宜しくお願い致します。
- 締切済み
- C・C++・C#
- iostream インクルード時に発生するエラー
C++ の勉強をするためにVisualStudio2008にて下記コードをビルドしたのですが、エラーが発生してビルドが失敗しました。 ■ コード #include <iostream> using namespace std; int main() { std::cout << "Hello World !"; return 0; } ■ 操作 空のコンソールアプリケーションを作成し、ソースファイルに追加>新しい項目 にて "temp.cpp" を追加、コードを入力。その後 ビルド > ソリューションのビルド を実行。 ■ エラー(一部) >> 「説明」 列 warning C4985: 'strlen': 前の宣言に属性が存在しません。 error C2039: 'wmemcpy_s' : '`global namespace'' のメンバではありません。 error C3861: 'wmemcpy_s': 識別子が見つかりませんでした error C2039: 'wmemmove_s' : '`global namespace'' のメンバではありません。 error C3861: 'wmemmove_s': 識別子が見つかりませんでした error C2039: 'memcpy_s' : '`global namespace'' のメンバではありません。 error C3861: 'memcpy_s': 識別子が見つかりませんでした error C2039: 'memmove_s' : '`global namespace'' のメンバではありません。 >>対応する「ファイル」列 d:\program files\microsoft visual studio 9.0\vc\include\exception d:\program files\microsoft visual studio 9.0\vc\include\iosfwd d:\program files\microsoft visual studio 9.0\vc\include\iosfwd d:\program files\microsoft visual studio 9.0\vc\include\iosfwd d:\program files\microsoft visual studio 9.0\vc\include\iosfwd d:\program files\microsoft visual studio 9.0\vc\include\iosfwd d:\program files\microsoft visual studio 9.0\vc\include\iosfwd d:\program files\microsoft visual studio 9.0\vc\include\iosfwd プロジェクトのプロパティやインストール時の構成などで何か問題があるのでしょうか。VisualStudio以外にはWindows SDK 、Windows SDK 6.0A、SQL Server2005などが導入されています。 再インストールするのもありかと思ったのですが、原因が分からないとまた同じ現象が発生しそうなため踏み切れません。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- VBに、Cのincludeのようなものありますか?
Cでは、 include<ファイル名.h> のように、自作の定義ファイルを読み込み事が出来ますが、 Visual BASICでは、できないでしょうか?
- ベストアンサー
- Visual Basic
- ポインタによる包含&ヘッダにincludeしない、 場合でtemplateの定義に…
class Bの宣言をしているヘッダ中で class A; を、前方宣言し、そのポインタだけを持たせ、ソースファイルのほうにclass Aの中身が分かるように、#includeして、ソースファイルに関数の実装やstatic変数の定義を書いていた、とします。 しかし、templateを使う関数についてはコンパイル時に解決できないといけないので、それだけはヘッダに持ってきました。 その時 includeが一切書かれていない、class Bのヘッダ内において class Aのメンバを参照するようなコードを書いたとき クラス外、クラス内、いずれに書いても 正常にコンパイルできました。 通常の関数では当然無理なので、もともとtemplateがコンパイル時解決を強要するものなのでそういう仕様にしててくれてると考えられますが 1.これは、C++の標準仕様でしょうか?それとも処理系依存でしょうか? あと、templateに関して 2.特殊化ならソースにかけるのは標準仕様でしょうか?それとも処理系依存でしょうか?
- ベストアンサー
- C・C++・C#
- C2146を回避するにはどうしたら良いのでしょうか
いつもここにお世話になってますm(__)m。今回は下記の様なエラーが出てしまい、困っております(--;)。 <エラー内容> 1>C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h(222) : error C2146: 構文エラー : ';' が、識別子 'PVOID64' の前に必要です。 1>C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h(222) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません エラーが起こっているのはwinnt.h内の「typedef void * POINTER_64 PVOID64;」という部分なのですが(他にもありますが)、winnt.hは弄ってないのです。 ネットで検索したところインクルードファイルディレクトリの指定の順番が怪しそうなので、「ツール」「オプション」でPlatformSDK関連が一番上に来るように変更(実行可能ファイル、インクルードファイル、ライブラリファイル)してリビルドしてみましたが結果は変わりませんでした。 他にチェックすべき点をお教え頂けると助かります。 [環境] ・WindowsXP(SP2) ・Visual Studio 2005 Professional(C++、SPなし)
- ベストアンサー
- C・C++・C#
- C++のiostreamのインクルードが不可能です
C++のiostreamのインクルードが不可能です。 とても初歩的な話でお恥ずかしいのですが、 Visual Studio 2012 Express for Windows DesktopにてC++の入門をしようとしている者です。 入門書の通り、iostreamをインクルードしてnamespaceをstdにして int main() { cout << "Hello, World!" << endl; return 0; } このようなHello,World!コードを作ったのですが、エラーが発生し、 ・ソースファイルを開けません "iostream" ・識別子 "cout", "endl" が定義されていません と表示され、デバッグエラーとなります。 プロジェクトの作り手順としては C++の空のプロジェクトからcppファイルをソースファイルに追加する手順です。 どなたか解決方法をご教授ください。
- ベストアンサー
- C・C++・C#
- 「fatal error C1189」を回避するには?
かなりの初心者でございますm(__)m。 先日のことですが「Visual Studio .net 2003」から「Visual Studio 2005」へアップグレード(というよりは切り替え)を行いました。 すると2003では問題なくビルド出来たものが2005では「fatal error C1189」が出てしまい困っております。 エラーメッセージ fatal error C1189: #error : Need to include strsafe.h after tchar.h 確かにtchar.hはインクルードしているので、これを文字通りに解釈して後にstrsafe.hをインクルードしたのですが、メッセージは変わらず(--;)。 どの辺りをチェックしたら良いか教えていただけると助かります。 OSはXP、VisualStudioのSP1はあてていません(エラーでSP1がインストール出来ないため)。
- ベストアンサー
- C・C++・C#
- TS5330のパソコンからの印刷ができない問題について解決方法を教えてください。
- パソコンからの印刷でTS5330プリンターが処理中のまま止まってしまいます。接続別の端末では印刷はできますが、パソコンではオンラインで認識されているため原因がわかりません。
- キヤノン製のTS5330プリンターを使用していますが、パソコンから印刷が進まずに困っています。どなたか解決策を教えていただけないでしょうか。
お礼
ありがとうございます。 もっと楽な方法がないかなと思っていたのですが、 コメントアウト&コンパイルでも、 そこまで手間ではないのかもしれません。