none
VC++2008Express Edition error LNK2019 error LNK1120 RRS feed

  • 質問

  •  

    VC++2008でプログラミングしているのですが、

    ビルドした際にこのようなエラーが出ます。

     

    見られてまずいところはあらかじめ"*"で隠しておきます。

     

    ------ ビルド開始: プロジェクト: nekovader, 構成: Debug Win32 ------
    コンパイルしています...
    nekovader.cpp
    リンクしています...
    MSVCRTD.lib(crtexew.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。
    G:\課題研究\*\Debug\*.exe : fatal error LNK1120: 外部参照 1 が未解決です。
    ビルドログは "file://g:\課題研究\*\*\Debug\BuildLog.htm" に保存されました。
    nekovader - エラー 2、警告 0
    ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

    いろいろと調べて、Platform SDKのインストールまでは終わっているのですが、

    その後の設定や、細かいところがぜんぜんわかりません。

     

    初心者なので、専門用語が出てきてしまうと頭がパンクしてしまうので

    わかりやすい回答よろしくお願いします。

     

    2008年11月8日 11:27

回答

  • まずは単純なプロジェクトでビルドできるか確認してみてください。

     

    メニューから「ファイル」→「新規作成」→「プロジェクト」→「Win32」→「Win32 プロジェクト」

     

    OKを押すと_tWinMainやら数個の関数がすでに書かれたcppファイルができあがります。

    なにもソースを変更せずにビルドが成功するかどうかを確認してください。

     

    #VC++2008ExpressEditionは2005と違ってPlatform SDK or WindowsSDKの別インストールが必要なかったような・・・

    2008年11月8日 15:54
  • とりあえずわからないところは、検索エンジンで検索してみてはどうでしょうか?

    例えば今回の例であれば"___tmainCRTStartup"をGoogleで検索してみたところ、色々なページがヒットします。

    http://www.google.co.jp/search?hl=ja&q=___tmainCRTStartup+&lr=lang_ja

     

    それらの情報から、tchar.hをincludeすると解決すると思います。

    以下の行を追加してみてください。

    Code Snippet

    #include <tchar.h>

     

    # とりあえずわからないメッセージが出てきたら、一度検索エンジンで検索してみた方が解決は速いと思います。

    2008年11月14日 8:31
  • ビルドを通すことを優先して細かい説明ははぶきますが、以下の設定を変更してみてください。

     

    メニューから「プロジェクト」→「(プロジェクト名)のプロパティ」を開きます。

    「構成プロパティ」→「全般」→「文字セット」を「Unicode文字セットを使用する」から「マルチバイト文字セットを使用する」に変更。

    2008年11月17日 11:44
  •  

     うちでは、tchar.h インクルードでは解決できませんでした(つーか、インクルードしてるし)。
    インテル コンパイラのリリースノート<xlsoft.com>に書いてある方じゃない?


    Visual Studio 2005 との統合に関する制限
    MFC ベース・アプリケーションのリンクエラー
    MFC をサポートする非コンソール・アプリケーションをビルドすると、次のリンクエラーが発生します。
    error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました

    このエラーは、以下の [プロジェクト プロパティ] が設定されている場合に発生します。


    • [全般] - [構成の種類] で [アプリケーション (.exe)] が設定されている場合
    • [全般] - [MFC の使用] で [スタティック・ライブラリーで MFC を使用する] または [共有 DLL で MFC を使用する] が設定されている場合
    • [リンカ] - [システム] - [サブシステム] で [コンソール (/SUBSYSTEM:CONSOLE)] 以外の値が設定されている場合

    回避策は次のとおりです。
    [プロジェクト プロパティ] - [リンカ] - [詳細] - [エントリーポイント] を [wWinMainCRTStartup] に設定する


    2008年11月18日 13:36
  • 必要なライブラリをリンクしてください。

    PlaySound : Winmm.lib
    TransparentBlt :
    msimg32.lib

    ライブラリの指定方法は
    http://www.crimson-systems.com/tips/mfc390.htm

    >
    プロジェクトにライブラリの追加
    に2005ですが画像つきで説明が載っているので参考にしてください。
    2008年11月19日 15:52
  • [プロジェクト プロパティ] - [リンカ] - [詳細] - [エントリーポイント] を [wWinMainCRTStartup] に設定する

     

    とあったのですが、そこを無くすと、エラーがなくなり、実行することができました。

     

    皆さん本当にありがとうございました。

     

    2008年11月20日 13:22

すべての返信

  • まずは単純なプロジェクトでビルドできるか確認してみてください。

     

    メニューから「ファイル」→「新規作成」→「プロジェクト」→「Win32」→「Win32 プロジェクト」

     

    OKを押すと_tWinMainやら数個の関数がすでに書かれたcppファイルができあがります。

    なにもソースを変更せずにビルドが成功するかどうかを確認してください。

     

    #VC++2008ExpressEditionは2005と違ってPlatform SDK or WindowsSDKの別インストールが必要なかったような・・・

    2008年11月8日 15:54
  • C.Johnさんありがとうございます。

    試してみたところ、普通にビルド成功しました。

     

    そもそもやろうとしているプログラミングが、「猫でもわかるゲームプログラミング」の

    第11章「ゲームを作ってみよう」のプログラミングです。

    そのプログラミングを少しして、ビルドしたところ、エラーが出てきました。

    テキスト通りに最初から作り直してみたところ、また最初のエラーが出てきます。

     

    ------ ビルド開始: プロジェクト: nekovader, 構成: Debug Win32 ------
    コンパイルしています...
    nekovader.cpp
    マニフェストをリソースにコンパイルしています...
    Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
    Copyright (C) Microsoft Corporation.  All rights reserved.
    リンクしています...
    MSVCRTD.lib(crtexew.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。
    C:\Documents and Settings\KouNext\My Documents\Visual Studio 2008\Projects\nekovader\Debug\nekovader.exe : fatal error LNK1120: 外部参照 1 が未解決です。
    ビルドログは "file://c:\Documents and Settings\KouNext\My Documents\Visual Studio 2008\Projects\nekovader\nekovader\Debug\BuildLog.htm" に保存されました。
    nekovader - エラー 2、警告 0
    ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

    もうです。

     

    助けてください。

    2008年11月9日 12:49
  •  kounext さんからの引用

    そもそもやろうとしているプログラミングが、「猫でもわかるゲームプログラミング」の

    第11章「ゲームを作ってみよう」のプログラミングです。

    そのプログラミングを少しして、ビルドしたところ、エラーが出てきました。

    テキスト通りに最初から作り直してみたところ、また最初のエラーが出てきます。

    その本を持っていないので何が悪いか特定するのは困難です。

     

    可能性として、下記は考えられますが、具体的にアドバイスは難しいかもしれません。

     

    1.テキスト通りに本当はできていない。(勘違い、別の章に記載がある他)

    2.テキストの前提が別のバージョンのVisual C++であるため、Visual C++ 2008でうまくいかない記載がある。

    3.テキストの前提が別のバージョンのVisual C++であるため、Visual C++ 2008では追加の手順が必要である。

     

     

    ※書籍のソースコードをそのまま載せるのは問題があると思ったので、それを書けとは言いません。

    2008年11月9日 13:52
    モデレータ
  • Azuleanありがとうございます。

    1.テキスト通りに本当はできていない。(勘違い、別の章に記載がある他)

    2.テキストの前提が別のバージョンのVisual C++であるため、Visual C++ 2008でうまくいかない記載がある。

    3.テキストの前提が別のバージョンのVisual C++であるため、Visual C++ 2008では追加の手順が必要である。

     

    とあったので、かなりあせりつつ確認しました。

     

    バージョンはわからないので、今確認しているのですが、章の間違いはありませんでした。

    2008年11月9日 14:57
  •  kounext さんからの引用

    バージョンはわからないので、今確認しているのですが、章の間違いはありませんでした。

    少なくとも書籍の発売日(2005/11/30)からVisual C++.NET 2003ではないかと思っています。

    書籍の最初の方に何か書いていませんか?

     

    1つ前のバージョンのVS2005への対応について先頭の方に補足情報があるみたいですね。

    今、お困りのことが解決するとは限りませんが…。

    http://www.kumei.ne.jp/c_lang/index.html

     

     Azulean さんからの引用

    1.テキスト通りに本当はできていない。(勘違い、別の章に記載がある他)

    「別の章に記載がある」で意図したことは、前の章でやっていた設定をしておかないとだめだとか、順序立ててやることを前提にしている部分がないかなと心配したものです。

    無用な指摘になっていたかもしれません。

    2008年11月9日 15:12
    モデレータ
  • 消極的な方法ですが、VisualC++ 2005 ExpressEditionもインストールしてこちらで試されてはいかがでしょう?

    2008と2005は共存可能です。

     

    http://www.microsoft.com/japan/msdn/vstudio/express/past/2005/

    2008年11月11日 12:11
  • 2005でもやってみたのですが、やはり同じ結果になりました。

     

    2008年11月14日 1:13
  • とりあえずわからないところは、検索エンジンで検索してみてはどうでしょうか?

    例えば今回の例であれば"___tmainCRTStartup"をGoogleで検索してみたところ、色々なページがヒットします。

    http://www.google.co.jp/search?hl=ja&q=___tmainCRTStartup+&lr=lang_ja

     

    それらの情報から、tchar.hをincludeすると解決すると思います。

    以下の行を追加してみてください。

    Code Snippet

    #include <tchar.h>

     

    # とりあえずわからないメッセージが出てきたら、一度検索エンジンで検索してみた方が解決は速いと思います。

    2008年11月14日 8:31
  • ありがとうございます。

    早速やってみようと思います。

    2008年11月16日 11:56
  • 本を持っていないので質問攻めになってしまうのが心苦しいのですが少し教えてください。
    「11章」がエラーになるとの事ですがもっと基本的な事を行っている章のコードはビルドできるのでしょうか?
    他の章のコードは問題なく、11章のみ問題となるなら違いを調べていく方法で解決できると思います。
    逆に基礎的な章のコードでもエラーとなるならエラーとなる最小のコードから調査していく方針でしょう。
    2008年11月16日 13:31
  • 返信ありがとうございます。

    仰った通りに第1章からビルドしているのですが、コンパイルエラーが出ました。

    ビルド結果は以下の通りです。

     

    ------ ビルド開始: プロジェクト: win01, 構成: Debug Win32 ------
    コンパイルしています...
    win01.cpp
    h:\課題研究\猫でもわかるゲームプログラミング\sample\chap01\win01\win01.cpp(58) : error C2440: '=' : 'LPCSTR' から 'LPCWSTR' に変換できません。
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\猫でもわかるゲームプログラミング\sample\chap01\win01\win01.cpp(85) : error C2664: 'CreateWindowExW' : 2 番目の引数を 'char Devil' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    ビルドログは "file://c:\Documents and Settings\KouNext\My Documents\Visual Studio 2008\Projects\win01\win01\Debug\BuildLog.htm" に保存されました。
    win01 - エラー 2、警告 0
    ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

    C2664についてググってみたのですが、いまいちよくわかりませんでした。

    そして、11章のプログラムを最後まで打つとこうビルドしました。

     

    ------ ビルド開始: プロジェクト: nekovader002, 構成: Debug Win32 ------
    コンパイルしています...
    nekovader.cpp
    h:\課題研究\nekovader\nekovader.cpp(61) : error C2664: 'LoadImageW' : 2 番目の引数を 'const char [7]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(70) : error C2440: '=' : 'LPCSTR' から 'LPCWSTR' に変換できません。
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(76) : error C2664: 'LoadImageW' : 2 番目の引数を 'const char [7]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(87) : error C2664: 'wsprintfW' : 1 番目の引数を 'char [64]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(99) : error C2664: 'CreateWindowExW' : 2 番目の引数を 'char [10]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(137) : error C2664: 'MyCreateFont' : 1 番目の引数を 'const char [14]' から 'LPCTSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(138) : error C2664: 'MyCreateFont' : 1 番目の引数を 'const char [14]' から 'LPCTSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(147) : error C2664: 'LoadImageW' : 2 番目の引数を 'const char [11]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(164) : error C2664: 'LoadImageW' : 2 番目の引数を 'const char [4]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(176) : error C2664: 'LoadImageW' : 2 番目の引数を 'const char Devil' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(187) : error C2664: 'LoadImageW' : 2 番目の引数を 'const char [10]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(195) : error C2664: 'LoadImageW' : 2 番目の引数を 'const char [5]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(206) : error C2664: 'LoadImageW' : 2 番目の引数を 'const char [5]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(214) : error C2664: 'LoadImageW' : 2 番目の引数を 'const char [5]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(314) : error C2664: 'PlaySoundW' : 1 番目の引数を 'const char [5]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(389) : error C2664: 'PlaySoundW' : 1 番目の引数を 'const char [7]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(396) : error C2664: 'wsprintfW' : 1 番目の引数を 'char [64]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(397) : error C2664: 'SetWindowTextW' : 2 番目の引数を 'char [64]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(413) : error C2664: 'PlaySoundW' : 1 番目の引数を 'const char [9]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(419) : error C2664: 'wsprintfW' : 1 番目の引数を 'char [64]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(420) : error C2664: 'SetWindowTextW' : 2 番目の引数を 'char [64]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(434) : error C2664: 'TextOutW' : 4 番目の引数を 'char *' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(438) : error C2664: 'TextOutW' : 4 番目の引数を 'char *' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(444) : error C2664: 'TextOutW' : 4 番目の引数を 'char *' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(447) : error C2664: 'TextOutW' : 4 番目の引数を 'char *' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(461) : error C2664: 'MessageBoxW' : 2 番目の引数を 'const char [25]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(471) : error C2664: 'PlaySoundW' : 1 番目の引数を 'const char Devil' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(498) : error C2664: 'wsprintfW' : 1 番目の引数を 'char [64]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    h:\課題研究\nekovader\nekovader.cpp(499) : error C2664: 'SetWindowTextW' : 2 番目の引数を 'char [64]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
            指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
    ビルドログは "file://h:\課題研究\nekovader002\nekovader002\Debug\BuildLog.htm" に保存されました。
    nekovader002 - エラー 29、警告 0
    ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

    2008年11月17日 8:12
  • ビルドを通すことを優先して細かい説明ははぶきますが、以下の設定を変更してみてください。

     

    メニューから「プロジェクト」→「(プロジェクト名)のプロパティ」を開きます。

    「構成プロパティ」→「全般」→「文字セット」を「Unicode文字セットを使用する」から「マルチバイト文字セットを使用する」に変更。

    2008年11月17日 11:44
  • 回答ありがとうございます。

    しかし、エラーがまだでてきます。

     

    ------ ビルド開始: プロジェクト: nekovader, 構成: Debug Win32 ------
    リンクしています...
    nekovader.obj : error LNK2019: 未解決の外部シンボル "int __cdecl InitInstance(struct HINSTANCE__ *,int)" (?InitInstance@@YAHPAUHINSTANCE__@@H@Z) が関数 _WinMain@16 で参照されました。
    nekovader.obj : error LNK2019: 未解決の外部シンボル "unsigned short __cdecl InitApp(struct HINSTANCE__ *)" (?InitApp@@YAGPAUHINSTANCE__@@@Z) が関数 _WinMain@16 で参照されました。
    H:\課題研究\nekovader001\Debug\nekovader.exe : fatal error LNK1120: 外部参照 2 が未解決です。
    ビルドログは "file://h:\課題研究\nekovader001\nekovader\Debug\BuildLog.htm" に保存されました。
    nekovader - エラー 3、警告 0
    ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

    ウィンメイン@16とは何でしょう?

    ググってみたのですが、いまいちよくわかりません

    よろしければ、そちらのほうもよろしくおねがいします。

    2008年11月18日 10:28
  • 11章のコードを書き写したとき nekovader.cppにWinMain関数を書きましたよね?

    このエラーはnekovader.cpp のWinMain関数の中でInitInstance と InitApp という2つの関数を呼び出しているけど見つからないという意味です。

    InitInstance とInitApp の内容も書き写したか確認してみてください。

    2008年11月18日 11:21
  •  

     うちでは、tchar.h インクルードでは解決できませんでした(つーか、インクルードしてるし)。
    インテル コンパイラのリリースノート<xlsoft.com>に書いてある方じゃない?


    Visual Studio 2005 との統合に関する制限
    MFC ベース・アプリケーションのリンクエラー
    MFC をサポートする非コンソール・アプリケーションをビルドすると、次のリンクエラーが発生します。
    error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました

    このエラーは、以下の [プロジェクト プロパティ] が設定されている場合に発生します。


    • [全般] - [構成の種類] で [アプリケーション (.exe)] が設定されている場合
    • [全般] - [MFC の使用] で [スタティック・ライブラリーで MFC を使用する] または [共有 DLL で MFC を使用する] が設定されている場合
    • [リンカ] - [システム] - [サブシステム] で [コンソール (/SUBSYSTEM:CONSOLE)] 以外の値が設定されている場合

    回避策は次のとおりです。
    [プロジェクト プロパティ] - [リンカ] - [詳細] - [エントリーポイント] を [wWinMainCRTStartup] に設定する


    2008年11月18日 13:36
  • 私の予想ですが最初の質問の時点で「error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました 」が発生したのは参考にした本のソースコードを写す途中だったため、WinMainがない状態でビルドしていたのが原因と思います。

    (途中の「そして、11章のプログラムを最後まで打つとこうビルドしました。」という書き込みから質問時点では完全なソースコードでなかったと推測)

     

    2008年11月18日 14:21
  • こんにちは。中川俊輔です。

     

    皆様、回答ありがとうございます

     

    kounextさんはじめまして。

    どのようなアプリケーションなのかわからないので想像ですが、

    もしかしてコンソールアプリケーションを不適当なプロジェクトテンプレートで作っていませんでしょうか?

    もしそうならプロジェクトを作成するときに"WIN32 コンソール アプリケーション"を選択してみてください。

     

    参考情報:

    You receive an "error LNK2001:unresolved external symbol "_WinMain@16" message when a Console Application project is built as an Application project in Visual C++

    http://support.microsoft.com/kb/131204/en-us

     

    今後ともフォーラムをよろしくお願いします。

    それでは!

     

    この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。

    コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。

    2008年11月19日 7:59
  • みなさん初心者の私に回答してくださってありがとうございます。

    コンソロールのほうでビルドしたのですが、

    このようなエラーが出ました。

    ちなみに、私は高3で、学校にもPCがあるのですが、サーバのマザーボードが調子悪いため、ネットが使えません。

    なので、その分詳しく書いてください。

    よろしくお願いします。

     

    ------ ビルド開始: プロジェクト: nekovader002, 構成: Debug Win32 ------
    リンクしています...
    nekovader.obj : error LNK2019: 未解決の外部シンボル __imp__PlaySoundA@12 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。
    nekovader.obj : error LNK2019: 未解決の外部シンボル __imp__TransparentBlt@44 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。
    MSVCRTD.lib(wcrtexew.obj) : error LNK2019: 未解決の外部シンボル _wWinMain@16 が関数 ___tmainCRTStartup で参照されました。
    H:\課題研究\nekovader002\Debug\nekovader002.exe : fatal error LNK1120: 外部参照 3 が未解決です。
    ビルドログは "file://h:\課題研究\nekovader002\nekovader002\Debug\BuildLog.htm" に保存されました。
    nekovader002 - エラー 4、警告 0
    ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

    2008年11月19日 11:51
  • 必要なライブラリをリンクしてください。

    PlaySound : Winmm.lib
    TransparentBlt :
    msimg32.lib

    ライブラリの指定方法は
    http://www.crimson-systems.com/tips/mfc390.htm

    >
    プロジェクトにライブラリの追加
    に2005ですが画像つきで説明が載っているので参考にしてください。
    2008年11月19日 15:52
  • こんなエラーが出ました。

     

    ----- ビルド開始: プロジェクト: nekovaderPROJECT, 構成: Debug Win32 ------
    コンパイルしています...
    nekovader.cpp
    リソースをコンパイルしています...
    Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
    Copyright (C) Microsoft Corporation.  All rights reserved.
    マニフェストをリソースにコンパイルしています...
    Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
    Copyright (C) Microsoft Corporation.  All rights reserved.
    リンクしています...
    msvcrtd.lib(wcrtexew.obj) : error LNK2019: 未解決の外部シンボル _wWinMain@16 が関数 ___tmainCRTStartup で参照されました。
    C:\Documents and Settings\KouNext\My Documents\Visual Studio 2008\Projects\nekovaderPROJECT\Debug\nekovaderPROJECT.exe : fatal error LNK1120: 外部参照 1 が未解決です。
    ビルドログは "file://c:\Documents and Settings\KouNext\My Documents\Visual Studio 2008\Projects\nekovaderPROJECT\nekovaderPROJECT\Debug\BuildLog.htm" に保存されました。
    nekovaderPROJECT - エラー 2、警告 0
    ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

    2008年11月20日 0:10
  • [プロジェクト プロパティ] - [リンカ] - [詳細] - [エントリーポイント] を [wWinMainCRTStartup] に設定する

     

    とあったのですが、そこを無くすと、エラーがなくなり、実行することができました。

     

    皆さん本当にありがとうございました。

     

    2008年11月20日 13:22