• 締切済み

Visual C++ 2008で<stdio.h>のインクルード文が使えない!?

#include <stdio.h> int main(){ printf("hello!"); } で実行すると、 : warning C4627: '#include <stdio.h>': プリコンパイル済みヘッダーの使用を検索中にスキップされました ディレクティブを 'stdafx.h' に追加するか、プリコンパイル済みヘッダーをビルドし直します .\■■■.cpp(5) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか? と言ったエラーが起きてしまいます。 ちなみに、インクルードファイルらしき物を削除しまくった覚えがあります…。100%これが原因かと。 これが原因だとしたらどうすればいいんでしょうか? あと、DXライブラリが使えるように設定を変えたこともあります。 どこの何を変えたかは忘れてしまいましたけど。

みんなの回答

  • jukiaa
  • ベストアンサー率0% (0/0)
回答No.5

#include "stdafx.h" と最初に書けば動きますよ。 #include "stdafx.h" の中に #include <stdio.h> が入っています。 そのため#include <stdio.h>は消してしまってかまいません。

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.4

★アドバイス ・プロジェクトを作成するとき『OK』ボタンを押す前に  『アプリケーションの設定』に切り替え『空のプロジェクト(E)』に  チェックしてから『OK』ボタンを押します。 ・これで『プリコンパイル済みヘッダ』などの不要なファイルが自動的に  作成されなくなります。C言語の学習の為の『hello!』ならこの方法が  お勧めです。これで普通に#include文だけで良くなります。 ・Windowsプログラミングの場合には『プリコンパイル済みヘッダ』を  使えば良いでしょう。

janjankun
質問者

お礼

本当だ…。 アドバイスありがとうございます!

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

# 分からないことは調べる癖をつけましょう プリコンパイルは毎回すべてのヘッダーやソースをチェックしなくても済むようにあらかじめコンパイルされた物を準備する機能です Windowsにはたくさんのヘッダーファイルを使用します、これらのWindows標準のヘッダーはほとんど変更されることはありません プロジェクトの初回ビルド時にコンパイルすれば次回からはこのコンパイルされた物を使用すれば十分という考え方です もともとのエラーはプロジェクトの作成方法に起因しているように感じられます

janjankun
質問者

お礼

そうだったんですか! ご返答と説明、ありがとうございます。

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.2

このエラー、MSVCではバージョン4くらいでもよく見たような。 プロジェクトを作るときにコマンドラインアプリケーションとして作ってますか? MFCベースのアプリケーションだとプロジェクト作成時にstdafx.hを作ってプリコンパイルして使っているんです。これを消したりするとエラーが出ます。また全ての.cppファイルでstdafx.hをインクルードする必要があります。 新規にコマンドラインアプリケーションのプロジェクトを作って、その中でプログラムを作ってみて下さい。 それでもエラーが出るなら開発環境が壊れている可能性もあるので、Visual C++ 2008を一度アンインストールして、再度インストールして下さい。

janjankun
質問者

補足

なんとか解決しましたが、コマンドラインアプリケーションやプリコンパイルの意味が分かりませんでした…。 出来ればこれの説明、お願いします。 コマンドラインインタプリタなら分かりますけど。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

一般的なインストールなら 『C:\Program Files\Microsoft Visual Studio 9\VC\include』 あたりに stdio.h はあると思います

janjankun
質問者

お礼

あ、ありました! ご返答ありがとうございます。 なんとか解決できましたが、またこれと関係するエラーが起きそうなので、まだ締め切りをしません。

関連するQ&A

  • opencvにおけるコンパイルエラー解決法

    【visual studio2010におけるopencv利用上でのコンパイルエラー】 当方visual studioもopencvも初心者です。踏まえてお答えいただけると大変助かります。 この度、オプティカルフローに関する勉強をしようとopencvの利用を始めました。 しかし、以下の文章が出てきてコンパイルができません。 optical_flow.cpp(1): warning C4627: '#include "cv.h"': プリコンパイル済みヘッダーの使用を検索中にスキップされました ディレクティブを 'StdAfx.h' に追加するか、プリコンパイル済みヘッダーをビルドし直します optical_flow.c++(2): warning C4627: '#include "highgui.h"': プリコンパイル済みヘッダーの使用を検索中にスキップされました ディレクティブを 'StdAfx.h' に追加するか、プリコンパイル済みヘッダーをビルドし直します (この後は、上記ヘッダファイル内で宣言していると思われる関数が無効である。という旨のエラーメッセージが延々と続きます) visualstudio上の設定はしっかりと行い、環境設定上のpath設定も行いました。なお、設定は下記URLに従って行い、白い画面が出るプログラムまでは正常に動作しました。 http://imagesensing.seesaa.net/article/200532994.html しかし、以下のHPに記載されているオプティカルフローのサンプルプログラムを動かそうとすると上記のヘッダファイルが開けない。という旨のエラーメッセージが出ます。 http://opencv.jp/sample/optical_flow.html そのままコンパイルしようとした際、プリコンパイルヘッダーをソースに追加する指示が一度出たので#include "StdAfx.h"はソースに追加してあります。 プリコンパイルヘッダーを使用しない。という設定も試みましたがダメでした。 解決法を教えてください。宜しくお願いします。

  • VisualStudio2005を使っています。

    最近VisualStudioを買い、試しに #include <stdio.h> int main(void) { printf("Hello,World"); return 0; } と打ち込みましたが、 fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか? とのエラーメッセージが出て困っております。 この場合は具体的にどのようなことをすればよいのでしょうか?よろしくお願いします。

  • 一番上だけ・・・?

    初めて投稿させていただきます。 私は今WEBを見て、DirectXとVisualStudio2005でC++のプログラムを作っています。 ユーザー定義のソースファイルとヘッダーファイル、リソースファイルを使っていて、そのうちヘッダーファイルを「stdafx.h」で参照したのですが、以下のようなエラーが出ました。 (以下プロジェクト名と各種ファイル名は一部仮称です) ------ ビルド開始: プロジェクト: prg, 構成: Debug Win32 ------ コンパイルしています... stdafx.cpp c:\documents and settings\nec-pcuser\my documents\visual studio 2005\projects\prg\prg\stdafx.h(38) : fatal error C1083: include ファイルを開けません。'hdf01.h': No such file or directory prg - エラー 1、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ========== おそらく、以下のところに問題があると思われます。 ----------[SAMPLE CODE]----------(stdafx.h内) // TODO: プログラムに必要な追加ヘッダーをここで参照してください。 #include "hdf01.h" #include "hdf02.h" #include "hdf03.h" #include "hdf04.h" #include "hdf05.h" ----------[SAMPLE CODE]---------- そこで、この掲示板を参考にして次のような方法を取りました。 (1)""を<>に変えてみる (2)[ツール]-[オプション]からインクルードファイルにパス先を登録してみる (3)「"hdfXX.h"」を相対パスにする (4)「"hdfXX.h"」を絶対パスにする 結果は、(1)と(3)は元と同じエラー、(2)と(4)は300以上のエラーが出て、コンパイルが中断されてしまいました。 気になるのは、「"hdf01.h"」と「"hdf02.h"」の位置を入れ替えてみると、「hdf02.h だけを読み込めない」といったエラーが出たことです。 その後もヘッダーファイルを記述する順番を替えてみましたが、どうやら「一番上のヘッダーファイル」だけを読まないらしいです。 実は、WEBで見たプログラムはVC++6.0向けのプログラムで、そのままコピーしてVS2005に貼り付けたところ、 ------ ビルド開始: プロジェクト: SampleSTG, 構成: Debug Win32 ------ コンパイルしています... stdafx.cpp コンパイルしています... ssf01.cpp c:\documents and settings\nec-pcuser\my documents\visual studio 2005\projects\prg\source\ssf.cpp(537) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか? ssf02.cpp c:\documents and settings\nec-pcuser\my documents\visual studio 2005\projects\prg\source\ssf02.cpp(54) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか? ssf03.cpp c:\documents and settings\nec-pcuser\my documents\visual studio 2005\projects\prg\source\ssf03.cpp(136) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか? ssf04.cpp c:\documents and settings\nec-pcuser\my documents\visual studio 2005\projects\prg\source\ssf04.cpp(370) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか? コードを生成中... スキップ中... (関連する変更は検出されませんでした) prg.cpp prg - エラー 4、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ========== というエラーが出たため見直してみたところ、stdafx.hに「// TODO: ~ 」といったものを見かけたため、上のように書き加えました。 PSDKやDirectXのパスは通っています。 アプリケーションは「Win32 Application」→「Win32 プロジェクト」と読み替えて、「プロジェクト名を入力して[OK]を押したら、次の画面でいきなり[完了]を押す」と、指示通りに作成しました。 ちなみに、OSは WindowsXP HomeEdition、 VS2005は AcademicEditionです。 よろしくお願いいたします。

  • MFCのエラーについて

    「プリコンパイル済みヘッダーの検索中に予期せぬ EOF を検出しました」 というエラーが出ました。これを直すのにいろいろ試し結局 #include "stdafx.h"の表記をすることで直りました。 このstdafxヘッダーファイルはMFCを使用した時点で用意されるのですがこれを使うとなぜこのエラーがなくなるのかがわかりません。 どなたかおしえてください。よろしくお願いします

  • エラーがでるようになりました。

    vs2005を使っているんですが、 「c:\documents and settings\rm\my documents\visual studio 2005\projects\o.c\o.c.cpp(17) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?」 というわけの分からない表示が出ました。 どのプログラムも実行できず、この表示が出ます。 急にそうなったんですが、特別なことをした覚えはありません。

  • Relaeaeモードでビルドできない。

    こんにちは。皆様に教えて頂きたいのですが、いまDebugモードでビルドできているのですが、Releaseモードで同様にやると、「fatal error C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました」と出ます。そこで、 関係するsourceの*.cのヘッダーに#include "stdafx.h"を加えたところ、「fatal error C1853: 'Release/***.pch' プリコンパイルされたヘッダー ファイルは、このバージョンのコンパイラと互換性がありません。」とエラーが出ます。どこが間違っているのかお分かりの方教えて頂けませんでしょうか?よろしくお願いいたします。

  • Visual C++ ヘッダー情報の反映

    ヘッダー内の定義(の変更)が反映されないことがあります。 例えば、 "stdafx.h"において #define a 123 と定義して、関数項目main.cppとfunc.cpp両方でaを使うとします。 もちろんどちらも最初に#include "stdafx.h"とインクルードしています。 ですがdefine定義を#define a 456のように変更し実行すると、 main.cpp内ではa=456で動作し、func.cpp内ではa=123で動作する。 というような症状がしばしば現れます。 Visual stadio 2008でプログラミングしています。 c++ 6.0のときも同様の症状が現れていたのですが、何か問題があるのでしょうか? よろしくお願いします。

  • VC++でCのプログラムを混在させるには

    VC++で拡張子がCのプログラムを挿入、プロジェクト、ファイルの追加で追加 すると atal error C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。 のエラーが出ます。 ここでファイル名の拡張子をCPPにすると、追加はできますが、 拡張子Cのままでプロジェクトに追加するにはどうすればいいでしょうか?

  • Microsoft Visual C++ .NETでコンパイルが通りません

    皆様、またまた宜しくお願いします。 今回はコンパイルが通らない原因を是非教えて頂きたく、 何卒宜しくお願いいたします。 現在、静的SQLを使った、DB2への更新プログラムを開発しています。 Microsoft Visual C++ .NET 2003 【開発手順】 1)XXXXXX.SQCで作成して、 2)DB2 コマンドセンターからPREP(プリコンパイル) 3)作成されたXXXXXX.cとXXXXXX.bndを、それぞれ、 4)Visual C++のプロジェクトに取り込んでいます(ファイル拡張子をC++に置き換え) 5)DB2 コマンドセンターからbind XXXXXX.bndを実行。 6)Visual C++のプロジェクトをコンパイル・リンクしています。 多少順番は異なるかと思いますが、ほぼ上記のように作成したXXXXXX.cppの ファイルを、移行先がC言語なので、拡張子を.Cに変更しました。 この時、#include "stdafx"は削除、XXXXXX.cppはプロジェクトからは削除、 そしてXXXXXX.cをプロジェクトに移動しました。 【問題発生】 ところが、コンパイルが通りません(下記が出力メッセージです)。 しかし、.cppに戻してコンパイルすると通ります。  XXXXXX.c  XXXXXX.SQC(397) : error C2143: 構文エラー : ';' が '型' の前にありません。  XXXXXX.SQC(398) : error C2143: 構文エラー : ';' が '型' の前にありません。 (以下略) 【参考】 参考までに#includeの指定は下記です。  #include <stdio.h>  #include <stdlib.h>  #include <string.h>  #include <sqlenv.h>  #include <sqlcodes.h>  #include <sqlutil.h>  #include <time.h>  #include <ctype.h> このような現象に遭われた方、何卒問題解決の糸口を教えてください。 宜しくお願いします。

  • なぜgccはstdio.hをインクルードしなくてもprintfが実行できるのか

    なぜgccはstdio.hをインクルードしなくてもprintfが実行できるのでしょうか。 暗黙にインクルードされるヘッダと されないヘッダファイルの差分等あれば教えていただきたく。。 // main.c int main(){ printf("SWSW\n") ; return 0 ; } % gcc main.c % ./a.out SWSW

専門家に質問してみよう