- ベストアンサー
VCでストップウォッチを作りたいのですが、うまくいきません。
こんにちは。私は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 スキップ ==========
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
★ダウンロードできる書庫ファイル 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 というフォルダ構造になります。 ・以上。おわり。
その他の回答 (3)
- Oh-Orange
- ベストアンサー率63% (854/1345)
★追記。 ・警告メッセージを出さなくするには、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つのファイルをプロジェクトに参加させてビルドすれば うまくコンパイルできます。実行も正常です。 ・以上。おわり。
お礼
Oh-Orange様 追記の説明ありがとうございます。
- sakusaker7
- ベストアンサー率62% (800/1280)
ダウンロードできるアーカイブの中身を見ると、 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です。 ありがとうございました。
- glphon
- ベストアンサー率26% (41/152)
私は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" とコメントを加え、ビルドしてみてください。 このようにもしてみたのですが、うまくはいきませんでした。
お礼
Oh-Orange様 いつもご回答頂きありがとうございます。 詳細な説明で助かります。 >(1)『resource.h』をドラッグして『ヘッダー ファイル』フォルダでドロップ(落とす)します。 ドラッグ&ドロップできるんですね。ファイルは全部ダウンロードしたものに変えました。No.2さんのお礼に書きましたが、インクルードファイルを変えてみたらできました。 ありがとうございました。