• ベストアンサー

win32アプリケーションコンパイル時のエラー

#include <windows.h> int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance , LPSTR lpCmdLine, int cmdShow) { MessageBox(NULL,"この文字が出ます","メッセージ",MB_OK); return 0; } 上記ソースをコンパイル時に以下のエラーが出ます ------ ビルド開始: プロジェクト: kcn01, 構成: Debug Win32 ------ リンクしています... MSVCRTD.lib(crtexe.obj) : error LNK2019: 未解決の外部シンボル _main が関数 ___tmainCRTStartup で参照されました。 C:\C++練習\kcn01\Debug\kcn01.exe : fatal error LNK1120: 外部参照 1 が未解決です。 ビルドログは "file://c:\C++\kcn01\Debug\BuildLog.htm" に保存されました。 kcn01 - エラー 2、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ========== 2005とSDKを一緒に使用するにある手順1~5は全て行いました ウィンドウズアプリケーションは普通に動作するのですが 空のプロジェクトにして↑のソースをコンパイルするとエラーが出ます 何か原因がわかる方よろしくお願いします。

  • op015
  • お礼率80% (4/5)

質問者が選んだベストアンサー

  • ベストアンサー
  • koedame
  • ベストアンサー率33% (10/30)
回答No.2

前の方のご指摘どおり、 コンソールアプリケーションの方でプロジェクトを作成してしまったようですね。 一応コンソールアプリケーションで win32 アプリケーションの スケルトンプログラムをビルドしてみた結果 コンソール練習用プロジェクト error LNK2019: 未解決の外部シンボル _main が関数 _mainCRTStartup で参照されました。 コンソール練習用プロジェクト fatal error LNK1120: 外部参照 1 が未解決です。 と出ました。 >error LNK2019: 未解決の外部シンボル _main が関数 >___tmainCRTStartup で参照されました。 の部分が同じですし、 多分間違いないでしょう。 まあ、変更の仕方は私には良く分りませんが。 もう一度作り直したほうが、考えなくていいと思います。 今度は コンソールアプリケーションではなく、 win32 アプリケーションの方にチェックをつけて やれば大丈夫だと思います。

op015
質問者

お礼

回答ありがとうございました 無事解決しました

その他の回答 (1)

noname#22510
noname#22510
回答No.1

> 未解決の外部シンボル _main このメッセージが出るということは、コンパイル・オプションが コンソール・アプリケーションを作成するようになっているのではないでしょうか。 もしそうなっていれば、Windowsアプリケーションを作成するための オプションを設定すればよいと思います。

op015
質問者

お礼

すみません 新たに質問した内容がタイトルと違う内容になってしまうし 最初に質問した内容は解決しているので締め切りました マルチバイト文字セットについては自分で調べてみます 回答ありがとうございました

op015
質問者

補足

確かにコンソールアプリケーションになっていました。 windowsアプリケーションにしてからコンパイルしたらエラーになったのですが 文字セットを無しorマルチバイト文字セットにするとそのエラーも直りました この設定はどういう意味があるんですか?

関連するQ&A

  • Win32APIについて

    #include <windows.h> int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR pCmdLine, int showCmd) { return 0; } のようなプログラムをビルドすると LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です Debug/Cpp1.exe : fatal error LNK1120: 外部参照 1 が未解決です。 が出ます。 ちなみにコンパイル環境はMicrosoft Visual C++ 5.0です。

  • コンパイル環境:

    コンパイル環境:  Windows XPで、CD版プロフェッショナルVC++ 6.0 に Vs6sp6(Downloadしたもの)をパッチ。 プロジェクトはMFC AppWizard(exe)、SDI(S)、日本語、後はデフォルトです。 エラー内容:  プロジェクトの設定のC/C++タブのプリプロセッサの定義で、  _MBCSを _UNICODE にすると下記のエラーが出ます。  マイクロソフトでは2005年版以降のエラー処理は書いて有りますが、  VC++ 6.0が無くて良くわかりません。教えて下さい。 msvcrtd.lib(crtexew.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です。 Debug/Jptest.exe : error LNK1120: 外部参照 1 が未解決です。 link.exe の実行エラー

  • Visual C++ 初心者です。

    Visual C++ 2005 Express Editionをダウンロードしました。 void main() {printf ("Hello World"); getchar();} をビルドしたところ、 MSVCRTD.lib(crtexew.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。 Debug\test.exe : fatal error LNK1120: 外部参照 1 が未解決です。 とエラーが出ました。 何が問題なのでしょうか。 全く初心者で、周りに質問できる人もいなくて、このアプリケーションを使わなければいけない状況です。 諸事情あって今日はもうパソコンを開けないのかもしれませんので、 お礼は遅くなると思いますが、よろしくお願いします。

  • C++でのエラーについて

    Microsoft Visual C++ 2010 Express において、以下のファイル (http://1st.geocities.jp/shift486909/program/Bernoulli/func.cpp) をコンパイルしようとすると、 1>------ ビルド開始: プロジェクト: eter, 構成: Debug Win32 ------ 1>LINK : error LNK2001: 外部シンボル "_WinMainCRTStartup" は未解決です。 1>c:\users\garnet\documents\visual studio 2010\Projects\eter\Debug\eter.exe : fatal error LNK1120: 外部参照 1 が未解決です。 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== というようなエラーが出てコンパイルできません。 何が原因なのでしょうか?

  • LNK1120 エラーについて

    このエラーが出たら一体何が問題なんですか? このエラーが出た以降、Visual C++ 2008がずっと使えなくなってしまいました…。ちなみ、この時にビルドで出力されたのは SVCRTD.lib(crtexew.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。 ■■■\Debug\tr3.exe : fatal error LNK1120: 外部参照 1 が未解決です。 …でした。 あと、入力したものは普通に #include <stdio.h> void main(){ printf ("Hello World"); } です

  • DirectX8でコンパイルエラー

    DirectX8実践プログラミングという本についてくるサンプルプログラムを コンパイルしようとしているのですが、 sprite.obj : error LNK2001: 外部シンボル "_D3DXCreateSprite@8" は未解決です sprite.obj : error LNK2001: 外部シンボル "_D3DXCreateTextureFromFileA@12" は未解決です sprite.obj : error LNK2001: 外部シンボル "_Direct3DCreate8@4" は未解決です .\Debug/spriteanimate.exe : fatal error LNK1120: 外部参照 3 が未解決です。 link.exe の実行エラー となってしまいます。DirectXを使っての勉強をはじめたばかりなのですが いきなりつまってしまいました。 おそらくライブラリが見つからないのかと思うのですが ライブラリのディレクトリ設定でC:\mssdk\libも追加されていました。 DirectX8SDKについてくるサンプルはコンパイル出来るのですが どういう理由が考えられるでしょうか?

  • MS VC++コンパイルエラーなし...ビルドエラー

    Microsoft Visual C++ で、新規作成 - 「プロジェクト」 - Win32 Application で作成し、「ファイル」-  C++ソースファイルで、main.cpp と言う名前で、以下のソースを作成しました。 #include <stdio.h> #include <stdlib.h> void main(int argc) { FILE *Fout; Fout = fopen("Date.ini" , "W "); fprintf(Fout , "%d" ,argc); fclose( Fout); } 別に作成したdllが、fscanfするためのテキストファイルを日次ハバッチで、作成したいと思っています。 尚、ここでfprintfするデータは、パラメータとして、読み込みたいと思っています。 (Visual BASICの command関数のように) 上記のソース、コンパイルは、通るのですが、ビルドすると以下のエラーが出ます。 「LIBCD.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16"は未解決です Debug/Date_ini.exe : fatalerror LNK1120: 外部参照 1 が未解決です。 link.exe の実行エラー 解決法をご教示いただきたく思います。 宜しくお願い致します。

  • ゲームプログラマになる前に覚えていきたい技術 より

    ↑タイトルの本を見て学習中の者です。 その本のp9~p19に書いてあるコードを元に、VC++2010でプログラムを書いたのですが、うまくいません。 他のサイトでほぼ同じソースコードがあったのでコピー&ペーストしましたがやはり、うまくいません。 ビルド時に、 MSVCRTD.lib(crtexew.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。 1>C:\Users\show\Desktop\nimotukun\Debug\nimotukun.exe : fatal error LNK1120: 外部参照 1 が未解決です。 と出ます。 これは関数が宣言してあって、本体が無い時に出るエラーメッセージだと思いますが、 私自身、VC++の見方がよくわかってないのか、この文章を見ただけではどこに異常があるかわかりません。 プログラム上にエラーメッセージと該当するキーワードがないのですが。 ソースコードは著作権上の問題が怖いのでココには書きません。 この本を読まれた方などで、回答頂けると幸いです。

  • コンパイルエラー

    VCでファイル(.c)をコンパイルしたところ 以下のエラーが出てしまいました。 error LNK2019: 未解決の外部シンボル _sqlcxt が関数 _xxxxxxxx で参照されました。 なんかの設定不足でしょうか? お分かりの方がおりましたら、よろしくお願いします。

  • コンパイルできません

    #include <windows.h> int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ){ MessageBox(NULL, "Kitty on your lap","メッセージです", MB_OK); return 0; } の様なプログラムを組んだところ Error: 外部シンボル '_main' が未解決(C:\BORLAND\BCC55\LIB\C0X32.OBJ が参照) の様にエラーになってしまいました。 どんな理由でエラーになっているのか調べたのですがよくわかりません。 一番初めのwin32APIを使ったプログラムで上手くコンパイルできないと 勉強が進まないので、わかる方教えてください。

専門家に質問してみよう