こんにちは。私は30代の男性です。
「Visual C++ の初歩(http://www.gulf.or.jp/~damayan/vc/visualc2.htm)」というサイトで、ストップウォッチプロジェクトファイルがダウンロードできたので、コピペしてコンパイルしようと思ったのですが、うまくいきませんでした。
いつも下記のようなエラーメッセージが表示されます。ヘッダーファイルに「stdafx.h」は置いてあるのですが、やり方が間違っているのでしょうか?
ちなみに、ダウンロードした「release」ファイルの中のexeファイルを起動すれば、実行はされます。「自分が新規でプロジェクトファイルを作り、ダウンロードしたソースをコピーしてコンパイルを試みても、うまくいかない。」という話です。
よきアドバイスを頂ければと思います。
宜しくお願い致します。
----- ビルド開始: プロジェクト: abc, 構成: Debug Win32 ------
コンパイルしています...
abc.cpp
c:\documents and settings\my documents\visual studio 2005\projects\abc\abc\abc.cpp(111) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
ビルドログは "file://c:\Documents and Settings\My Documents\Visual Studio 2005\Projects\abc\abc\Debug\BuildLog.htm" に保存されました。
abc - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========
No.3ベストアンサー
- 回答日時:
★ダウンロードできる書庫ファイル abc.lzh は正常に出来ましたよ。
・自分で新規作成したプロジェクトの場合は、resource.h、abc.rc が必要です。
もう一度、新しいプロジェクト abc を作った方が早いかもしれません。
ダウンロードした書庫ファイルで必要なものは次の通りです。
×abc.aps
○resource.h
○abc.cpp
×abc.opt
×abc.plg
○abc.rc
×abc.dsp
×abc.dsw
×abc.ncb
上記の3つのファイル以外は、古いバージョン用のプロジェクトファイルなので必要ありません。
手順:
・メニューバーより、新規作成(N)→プロジェクト(P)を選択して下さい。
・『Win32 プロジェクト』を選択してプロジェクト名には『abc』を入力して下さい。OK ボタンも押す。
・『アプリケーションの設定』に切り替えて『空のプロジェクト(E)』にチェックして下さい。完了ボタンも押す。
・右側にある画面を『ソリューション・エクスプローラ』に切り替えて下さい。
abc
├参照設定
├ソース ファイル
├ヘッダー ファイル
└リソース ファイル
という構造が現れます。
・ダウンロードした abc.lzh の中にあった3つのファイルをプロジェクトに参加させます。
参加とは、ソースファイルなどを管理構造に設定することです。
エクスプローラからドラッグ&ドロップすることで簡単に出来ます。
(1)『resource.h』をドラッグして『ヘッダー ファイル』フォルダでドロップ(落とす)します。
(2)『abc.cpp』をドラッグして『ソース ファイル』フォルダでドロップします。
(3)『abc.rc』をドラッグして『リソース ファイル』フォルダでドロップします。
上記の3ステップを行った後は、ビルドボタンを押して下さい。
・これで正常にコンパイルできます。ただし、ちょっとだけ警告メッセージが出ますけど気にしないで良し。
その他:
・新しいプロジェクト abc を作ると
■abc
├■Debug
│├abc.res
│├BuildLog.htm
│├abc.ilk
│├abc.obj
│├abc.pdb
│├vc70.pdb
│├vc70.idb
│└abc.exe ←実行するとストップウォッチを体感できます。
│
├abc.sln
├abc.vcproj
├abc.ncb
└abc.suo
というフォルダ構造になります。
・以上。おわり。
Oh-Orange様
いつもご回答頂きありがとうございます。
詳細な説明で助かります。
>(1)『resource.h』をドラッグして『ヘッダー ファイル』フォルダでドロップ(落とす)します。
ドラッグ&ドロップできるんですね。ファイルは全部ダウンロードしたものに変えました。No.2さんのお礼に書きましたが、インクルードファイルを変えてみたらできました。
ありがとうございました。
No.4
- 回答日時:
★追記。
・警告メッセージを出さなくするには、abc.cpp の 82、109 行を修正します。
82行目。
修正前⇒return HANDLE_WM_INITDIALOG(hDlg, wParam, lParam, OnInitDialog);
修正後⇒return (BOOL)HANDLE_WM_INITDIALOG(hDlg, wParam, lParam, OnInitDialog);
※(BOOL)キャストを付けます。
109行目。
修正前⇒return DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1),
修正後⇒return (int)DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1),
※(int)キャストを付けます。
その他:
・abc.lzh ファイル内の resource.h、abc.cpp、abc.rc の3つ以外のファイルは削除して良し。
・『stdafx.h』は使っていませんし、#include "stdafx.h" も削除しないでも良いですよ。
多分、新規プロジェクトのときに『空のプロジェクト』にチェックしなかったために多数の
ファイルが出来てしまい afxres.h ヘッダも存在しただけです。
・『空のプロジェクト』にチェックすると自動的には stdafx.h など複数のファイルは作られません。
今回は新規プロジェクトのときに『空のプロジェクト』にチェックしてから作れば良いです。
その後、resource.h、abc.cpp、abc.rc の3つのファイルをプロジェクトに参加させてビルドすれば
うまくコンパイルできます。実行も正常です。
・以上。おわり。
No.2
- 回答日時:
ダウンロードできるアーカイブの中身を見ると、
VC6くらいのバージョンで作ったものですね。
それと、afxなんとか とか なんとかafx という名前は
MFCを使っているときに使われるものですが、
このプログラムはMFCを使っていないので必要ないですね。
> 2005\projects\abc\abc\abc.cpp(111) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
これは多分、コンパイラの推測が間違っているメッセージです。
ダウンロード→プロジェクト作成→コンパイル
→ エラーが出たのでヘッダファイルをいじった
とやってから「ソリューションのビルド」をやりませんでしたか?
ヘッダファイルをいじった場合は
「ソリューションのリビルド」
(ビルドメニューの上から二番目)をやった方がいいです。
多分、
1. abc.lzhを適当なディレクトリに展開
2. 適当なエディタかメモ帳で abc.rcを開く
3. #include "afxres.h" の行を削除するか
コメントアウトする
4. セーブして終了
5. start abc.dsw
6. Visual Studioが起動してプロジェクトを変換するか?
と訊かれるので「はい」を選択
7. ビルド
で行けると思います。
stdafx.hはつくる必要ありません。
もちろん自分でプロジェクトを作って、そこにファイルを
登録していってもOKです。
その辺はお好きに。
ご回答ありがとうございます。
>1. abc.lzhを適当なディレクトリに展開
2. 適当なエディタかメモ帳で abc.rcを開く
3. #include "afxres.h" の行を削除するか
コメントアウトする
4. セーブして終了
5. start abc.dsw
6. Visual Studioが起動してプロジェクトを変換するか?
と訊かれるので「はい」を選択
7. ビルド
で行けると思います。
stdafx.hはつくる必要ありません。
「3.」で#include "afxres.h" を#include "stdafx.h"に書き換えたら、偶然にもうまくいきました。解決策が若干変わってしまいましたが、コンパイルできたので自分としてはこれでOKです。
ありがとうございました。
No.1
- 回答日時:
私はVCの環境はありませんが、該当のファイルをダウンロードして別環境で実行してみました。
上手く行ったので参考にしてください。
Borland C/C++でですが、
>bcc32 -W abc.cpp
abc.rcをメモ帳で開き #include "stdafx.h"をコメントアウトし
>brc32 abc.rc abc.exe
としたら成功しました。
VCの方でも同様にプロジェクトからstdafx.hを外し、
abc.rcをメモ帳で開き
#include "stdafx.h"
の部分を
// #include "stdafx.h"
とコメントを加え、ビルドしてみてください。
ご回答ありがとうございます。
>#include "stdafx.h"
の部分を
// #include "stdafx.h"
とコメントを加え、ビルドしてみてください。
このようにもしてみたのですが、うまくはいきませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(開発・運用・管理) 【至急】.htaccessによるディレクトリ単位でのリダイレクト 2 2023/08/10 13:46
- UNIX・Linux Ubuntu でinvalid filenameとなるファイルをコピーする方法 3 2023/06/08 22:26
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 10:07
- Access(アクセス) Access2016のExcelインポートの機能のことで教えてください 1 2022/09/11 14:58
- C言語・C++・C# gcc のコンパイラオプションについて 2 2022/12/21 17:11
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/08 09:05
- Excel(エクセル) 早急に教えていただきたいんですけど、e-statからexcelデータをダウンロードしたんですが横スラ 1 2023/05/12 01:04
- その他(プログラミング・Web制作) Visual StudioでDjangoのプロジェクト配下のappを作成する方法 1 2022/05/01 03:47
- Excel(エクセル) Excelでデータを抽出するに良い方法 9 2023/02/06 12:42
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/10 08:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETで他のプロジェクトで作...
-
VB.NETでActiveX(OCXファイル)作成
-
VC++でexeファイルが作成できま...
-
コンパイルするときに、ファイ...
-
C#のクラスをVB.netで使用したい!
-
VC++6.0 プロジェクト名を変え...
-
ユーザー名・作成者について(Vi...
-
ACCESSのEXEを作るのは可能...
-
VB6.0 オブジェクトを一覧で表示
-
c言語として保存できない
-
他の.CPPファイルに定義した関...
-
vb.netでレジストリ操作
-
sys/ipc.h や sys/shm.h
-
VC++でプロジェクト名の変え方...
-
Visual Studio 2017 VC++ 空の...
-
ソースから参照しているOCXの一...
-
VB6.0の別名保存について
-
vbpファイルについて
-
Visual Studioランタイム組込み...
-
標準的な、vb6.0の開始・保存・...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで他のプロジェクトで作...
-
ACCESSのEXEを作るのは可能...
-
VC++でexeファイルが作成できま...
-
他の.CPPファイルに定義した関...
-
ソースから参照しているOCXの一...
-
エラーの原因は?「この関数の...
-
VB6で、非表示モジュール(?)の...
-
VB.NETでActiveX(OCXファイル)作成
-
コンパイルするときに、ファイ...
-
C#のクラスをVB.netで使用したい!
-
プリコンパイル?
-
VS2010 ProductVersion 変更
-
「マージする」とは?
-
VCでストップウォッチを作りた...
-
VisualBasicを保存するときにで...
-
Visual Studioでプロジェクトが...
-
VB6.0 オブジェクトを一覧で表示
-
VC++ 2005 Intellisenseを更新....
-
VB6 exeファイルのプロパティの...
-
sys/ipc.h や sys/shm.h
おすすめ情報