ページ 11

「3.11章 セーブデータの作り方」のエラーについて

Posted: 2013年5月13日(月) 22:27
by ねぐせ
初めての質問なので分かりづらい部分はご指摘ください。

僕は今、新・ゲームプログラミングの館の記事を上から1つずつこなしています。
3.11章 セーブデータの作り方の

コード:

#include <stdio.h>

int main(){
        int money = 1000;
        FILE *fp = fopen( "セーブデータ.dat", "wb" ); // ファイルを開く
        if( fp == NULL ){ // NULLが返ってきたらエラー発生
                return 0;
        }
        fwrite( &money, sizeof(int), 1, fp ); // ファイルにmoneyの値を出力する
        fclose( fp ); //ファイルを閉じる
        return 0;
}
というコードをそれまでと同じプロジェクトで実行したところ、以下の様なエラーが出ました。

1>------ ビルド開始: プロジェクト: GameProg, 構成: Debug Win32 ------
1>LIBCMTD.lib(wwincrt0.obj) : error LNK2019: 未解決の外部シンボル _wWinMain@16 が関数 ___tmainCRTStartup で参照されました。
1>C:\***\Microsoft Visual Studio\Microsoft Visual C++ 2010 Express - JPN\game\GameProg\Debug\GameProg.exe : fatal error LNK1120: 外部参照 1 が未解決です。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

そこで、ページ中程の「こちらからプロジェクトをダウンロード」というリンクからダウンロードし、実行したところ無事セーブデータが生成されました。

何が問題だったのか、なぜ解決したのかを教えて下さい。
よろしくお願いします。

OS:windows7
コンパイラ名:Microsoft Visual C++ 2010 Express

Re: 「3.11章 セーブデータの作り方」のエラーについて

Posted: 2013年5月13日(月) 22:32
by nil
プロジェクトの設定がコンソールアプリケーションになっていません。

類似する質問
time_tを使ったソースをコンパイルできません
http://dixq.net/forum/viewtopic.php?f=3&t=13021

Re: 「3.11章 セーブデータの作り方」のエラーについて

Posted: 2013年5月13日(月) 22:52
by ねぐせ
早速の返信ありがとうございます。
仰る通り、コンソールアプリケーションで実行できました。
自分でも何度かコンソールアプリケーションで試して見たのですが、エラーは解決していませんでした。
今回はmain関数を_tmain関数とすることで正常に動作しました。
ありがとうございました。