シューティングゲームの館についての質問

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
メンチ

シューティングゲームの館についての質問

#1

投稿記事 by メンチ » 17年前

現在、6. 先ほどのプログラムを分割する。をやっているのですが

initial.obj : error LNK2005: "struct BODY_player_t Player" (?Player@@3UBODY_player_t@@A) はすでに img_sound_load.obj で定義されています
background.obj : error LNK2005: "struct BODY_player_t Player" (?Player@@3UBODY_player_t@@A) はすでに img_sound_load.obj で定義されています
player.obj : error LNK2005: "struct BODY_player_t Player" (?Player@@3UBODY_player_t@@A) はすでに img_sound_load.obj で定義されています
fps.obj : error LNK2005: "struct BODY_player_t Player" (?Player@@3UBODY_player_t@@A) はすでに img_sound_load.obj で定義されています
main.obj : error LNK2005: "struct BODY_player_t Player" (?Player@@3UBODY_player_t@@A) はすでに img_sound_load.obj で定義されています
LIBCMT.lib(wwincrt0.obj) : error LNK2001: 外部シンボル "_wWinMain@16" は未解決です
Debug/STG.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー

と、出てしまうのですがどうやって解決したらいいのでしょうか。

管理人

Re:シューティングゲームの館についての質問

#2

投稿記事 by 管理人 » 17年前

メンチさん、こんにちは。

構造体の宣言が重複しているのではないでしょうか?

変数宣言集であるGlobalVariable.hでも

グローバル宣言集であるExternGV.hでも

BODY_player_t Player;

と宣言すると、このようなエラーが出ると思いますが、

ExternGV.hでは

extern BODY_player_t Player;

とすればよいと思います。

ExternGV.hではextern BODY_player_t Player;と構造体が宣言されていますか?

管理人

Re:シューティングゲームの館についての質問

#3

投稿記事 by 管理人 » 17年前

↑画像クリックで拡大↑

先ほど実際に自分でも6章通りにやってみました。
画像の通りに

ExternGV.hを書いてちゃんとコンパイル通りました。

なんら独自の変更は加えていません。

6章どおりコピー・ペーストしていっただけです。

もう一度、コピーペーストがきちんと出来ているか、

特に先ほどのexternの部分がきちんとかけているか、ご確認ください。

メンチ

Re:シューティングゲームの館についての質問

#4

投稿記事 by メンチ » 17年前

ありがとうございました。
こちらの単純なミスのせいだったので、今後はもっと気をつけて見ようと思います。
ほとんどのエラーは消えたのですが、

リンク中...
LIBCMT.lib(wwincrt0.obj) : error LNK2001: 外部シンボル "_wWinMain@16" は未解決です
Debug/STG.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラ

これだけが、消えません。
他のところで、

「「Win32 Application」でmainを実装しているのだと思いますが
とりあえず簡単にはこれではうまくビルドできません(単に僕が知らないだけかも)
「Win32 Console Application」を選べばmainで始まるプログラムを
ビルドできます

WinMainで始まるプログラムで良ければ「Win32 Application」の後のステップ1/1で
「単純なWin32アプリケーション」か「標準的な"Hello World!"アプリケーション」
を選ぶと楽です
また、「Win32 Console Application」でもステップ1/1で
「単純アプリケーション」や「"Hello, World!"アプリケーション」
等を選んでも少し楽ができます

mainで始めたければ「Win32 Console Application」
WinMainで始めたければ「Win32 Application」
とでも覚えておけば、今後このエラーに悩まされる可能性が減ります」

と、書いてあったので試してみたのですが、

コンパイル中...
background.cpp
c:\documents and settings\???\デスクトップ\いろいろ\授業\c\三回目\background.cpp(13) : fatal error C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
fps.cpp
c:\documents and settings\???\デスクトップ\いろいろ\授業\c\三回目\fps.cpp(24) : fatal error C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
img_sound_load.cpp
c:\documents and settings\???\デスクトップ\いろいろ\授業\c\三回目\img_sound_load.cpp(11) : fatal error C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
initial.cpp
c:\documents and settings\???\デスクトップ\いろいろ\授業\c\三回目\initial.cpp(18) : fatal error C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
main.cpp
c:\documents and settings\???\デスクトップ\いろいろ\授業\c\三回目\main.cpp(52) : fatal error C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
player.cpp
c:\documents and settings\???\デスクトップ\いろいろ\授業\c\三回目\player.cpp(10) : fatal error C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
コードを生成中...
cl.exe の実行エラー

三回目.exe - エラー 6、警告 0

と、でてしまいたした。どうすればいいのでしょうか?

管理人

Re:シューティングゲームの館についての質問

#5

投稿記事 by 管理人 » 17年前

ごめんなさい・・よくわからないので、本家DXライブラリの質問掲示板

http://hpcgi2.nifty.com/natupaji/aska.cgi

で同じ質問をしていただけないでしょうか。

DXライブラリ製作者様が答えてくれます。力及ばず申し訳ないです。。

Justy

Re:シューティングゲームの館についての質問

#6

投稿記事 by Justy » 17年前

>予期しない EOF
 このエラーは MSVCのプリコンパイルヘッダ関連のエラーです。
 解決方法は2通りあります。

1 stdafx.h
 もしソースコードのあるディレクトリに stdafx.hがあるのなら(本当は stdafx.hとは限らないのですが)、各 cpファイルの全ての先頭に

[color=#d0d0ff" face="monospace]#include "stdafx.h"[/color]
 を追加してみてください。

2 プリコンパイルヘッダを使わない
 ソリューションエクスプローラで対象のプロジェクトを選択して右クリック→プロパティで、プロパティダイアログを出してください。
 その中の「構成プロパティ」→「C/C++」→「プリコンパイル済みヘッダ」という項目があるのでクリックしてください。
 するとダイアログ内の右側の内容が変化し、「プリコンパイル済みヘッダの作成/使用」という項目があるのでそれを「プリコンパイル済みヘッダを使用しない」、としてください。
 同様にソリューションエクスプローラ内にある各 cppファイルも選択して「プリコンパイル済みヘッダの作成/使用」の設定を「プリコンパイル済みヘッダを使用しない」としてください。

閉鎖

“C言語何でも質問掲示板” へ戻る