none
LNK1561 エントリーポイントを定義しなければなりません。 RRS feed

  • 質問

  • Visual Studio 2015のC++で ソリューション構成がDebugでソリューションのビルドをしてみるとエラーはないのですが、

    ソリューション構成をReleaseにしてソリューションのビルドをしてみると上記タイトルのエラーが出ます。意味不明です。

    簡単なプログラムでも出ますね。デザインでボタンとか、…ボックス、なんかを配置してそれだけでも起きます。

    2016年3月20日 14:09

回答

  • テツヤ630213さん

    早速のご返信ありがとうございます。(MS純正のテンプレートではないことはAzuleanさんのおっしゃる通りです。)

    私のほうでは、再現確認し、動かすために何が必要か探ってみました。以下参考になりましたら幸いです。

    確かに、テンプレート「C++ Windows Forms」をダウンロードして、ご指摘されている手順で試したところ再現しました。

    どうも、Releaseのプロジェクトの設定で2か所、空白になってしまっていることが原因かと思います。

    1. プロジェクトのプロパティを開き、構成が「Release」となっていることを確認し、「構成プロパティ」→「リンカー」→「システム」→「サブシステム」の項目で「Windows (/SUBSYSTEM:WINDOWS)」を選択する。
    2. 同じくプロジェクトのプロパティで、「構成プロパティ」→「リンカー」→「詳細設定」→「エントリーポイント」の項目で「Main」と設定する。

    以上です。上記の設定でReleaseでもビルド&実行ができると思います。(一般の方が作成されたテンプレートなので設定が抜け落ちてるのかな?と思いました。)


    • 編集済み kenjinoteMVP 2016年3月21日 15:26
    • 回答の候補に設定 星 睦美 2016年3月23日 0:17
    • 回答としてマーク 星 睦美 2016年5月13日 7:58
    2016年3月21日 15:22

すべての返信

  • すみません。質問ですが、

    Visual Studio 2015で作成されようとしているものは何でしょうか?

    exeでしょうか?dllでしょうか?

    また、C++のプロジェクトはどのように作成されたのでしょうか?
    (ATL,CLR,MFC,Win32など詳しく)

    簡単なプログラムを作成してもエラーが出るということですが、新規作成からプロジェクトを作成してもエラーが表示されるということでよろしかったでしょうか?その時の手順等教えていただけますと助かります。

    2016年3月20日 14:56
  • Debug の時のプロジェクトの設定で何かされていませんでしたか?
    これらの設定内容は Debug と Release で別に管理されてますので、同じような手順を実施していただく必要があるはずです。

    ところで、憶測でものを言うようで申し訳ないですが、C++ で Windows フォームアプリケーションを作っているだとすると、「サポート外(未来のないこと)」なので、将来、その方法が使えなくなっても文句が言えない道を歩んでいるということになるのでご注意ください。

    2016年3月21日 8:33
    モデレータ
  • あ、すいません。

    EXEファイルです。

    インストール済み→Visual C++→C++ Windows Formsを選択。
    TestでフォルダーをC++Projectにして作る。
    右側:Header Files→MyForm.hをダブルクリックで開く
    上:ソリューション構成「Debug」で「x86」でビルド。
    →OKとなる。
    ソリューション構成「Release」にして、ビルド→
    「エントリーポイントを定義しなければなりません。」でる。

    2016年3月21日 14:30
  • えーフォームアプリケーションはサポート外?でも項目あるし。

    他の人はどうやってアプリケーションを作るんでしょう?。CLRとかそういう言葉を知りません。x86はわかりますが。

    2016年3月21日 14:33
  • えーフォームアプリケーションはサポート外?でも項目あるし。

    C++/CLI においては、推奨しない、過去の互換性という観点でのみのサポートであり、将来性はありません。
    https://support.microsoft.com/ja-jp/kb/3001686

    また、なぜ、英語のプロジェクトテンプレート名だったか?ということを考えてみてください。
    おそらく、自分でインストールするなど、何かされたのではないですか?

    なお、手元の Visual Studio 2015 Enterprise で、C++/CLI プロジェクトを示す、CLR ノードでは以下の 3 項目のみです。

    他の人はどうやってアプリケーションを作るんでしょう?。CLRとかそういう言葉を知りません。x86はわかりますが。

    「C++(厳密には C++/CLI)で Windows Forms を使わない」でしょう。
    Windows Forms を使う画面の設計・実装は C# を使った方がコーディング面、サンプル面で軍配が上がります

    2016年3月21日 14:40
    モデレータ
  • インストール済み→Visual C++→C++ Windows Formsを選択

    これは標準品ではありません。
    下記のような手順を踏んで、自分でインストールしたはずです。

    2 枚目の画像に示すとおり、この方が作って公開されたもの であり、Microsoft は何も保証していません。
    よって、作者にフィードバックするか、自力で解決するかが必要です。

    追伸
    少なくとも x86 の Release 構成をメンテしていない、不備のあるプロジェクトテンプレートのようですね。使い続けたいのであれば、Debug/Release を見比べて、適切に設定を変えてください。
    ただし、別途述べたように、「Microsoft は推奨していない」ということを理解し、違う道を学ぶことも考えた方が良いと、私は思います。

    2016年3月21日 14:47
    モデレータ
  • テツヤ630213さん

    早速のご返信ありがとうございます。(MS純正のテンプレートではないことはAzuleanさんのおっしゃる通りです。)

    私のほうでは、再現確認し、動かすために何が必要か探ってみました。以下参考になりましたら幸いです。

    確かに、テンプレート「C++ Windows Forms」をダウンロードして、ご指摘されている手順で試したところ再現しました。

    どうも、Releaseのプロジェクトの設定で2か所、空白になってしまっていることが原因かと思います。

    1. プロジェクトのプロパティを開き、構成が「Release」となっていることを確認し、「構成プロパティ」→「リンカー」→「システム」→「サブシステム」の項目で「Windows (/SUBSYSTEM:WINDOWS)」を選択する。
    2. 同じくプロジェクトのプロパティで、「構成プロパティ」→「リンカー」→「詳細設定」→「エントリーポイント」の項目で「Main」と設定する。

    以上です。上記の設定でReleaseでもビルド&実行ができると思います。(一般の方が作成されたテンプレートなので設定が抜け落ちてるのかな?と思いました。)


    • 編集済み kenjinoteMVP 2016年3月21日 15:26
    • 回答の候補に設定 星 睦美 2016年3月23日 0:17
    • 回答としてマーク 星 睦美 2016年5月13日 7:58
    2016年3月21日 15:22
  • できました!。なんで空白なのかなー、面倒ですね、気をつけないと。

    とにかくありがとうございました。お世話になりました。

    2016年3月22日 16:28