[スイッチ]未解決の外部シンボル_main、シンボルは関数で参照され___tmainCRTStartup

ただ、WinAPIのコンパイラを学ぶことは多くの問題に遭遇し、
LNK2019:未解決の外部シンボル_mainは、シンボルはMSVCRTD.LIBテストにおける機能___tmainCRTStartupで参照されます。

この質問を示しますが、主な機能(コンソールアプリケーション)の新しいタイプですが、ウィンドウはアプリケーションプログラムであることを、明確にWin32関数である解決策:プロジェクト-プロパティ-リンカ-システム-サブシステム-コンソールへWindows用。


次の基本的な注意事項:

一、问题描述
エラーLNK2001:未解決の外部シンボル_WinMain @ 16
デバッグ/ MAIN.EXE:致命的なエラーLNK 1120:1つの未解決の外部
エラー実行LINK.EXE。

プロデュース第二に、問題が発生することがあり
1、あなたはVCコンソールプログラムを構築し使用し、そのエントリの機能がメインであるべきであり、あなたはWinMain関数を使用します。

2.あなたは、VCを使用するには、WinMianではなく、メインのエントリ関数として使用されているファイルを、コンパイルした後、.C / .cppファイルを開きました。今回のVCのデフォルト設定はコンソールプログラムです。

第三に、ソリューション
プロジェクト- >設定- > C / C ++に移動します 、 カテゴリ内のプリプロセッサを選択し、プロセッサの定義では、削除_CONSOLE、追加_WINDOWS

2.へプロジェクト - >設定 - >リンク、プロジェクトのオプション/サブシステム内:コンソール変更/サブシステム:窓。

設定の保存3.、すべてを再構築します。

VS2005は、対応する項目のセットに設けられた参照

四、VS2005の設定

1. [メニュープロジェクト - >プロパティ、ポップアップウィンドウプロパティページ

2.左側の列で選択します。Configurationプロパティ - > C / C ++ - その後>プリプロセッサ、および対応する追加_WINDOWSの右欄にアイテムプリプロセッサの定義_CONSOLEを削除します。

左の列にある3.:設定プロパティ - >リンカー - >システム、およびWindowsに変更し、その後右側の列のサブシステムに対応する項目(/ SUBSYSTEM:WINDOWS)

4.Rebuildすべて。OK ?

:(テスト環境:VS2005、プログラミング言語VC)

次のようにテキストエディタでコードを書く1:

// test.cの 
書式#include <windows.hに> int型APIENTRYのWinMain(HINSTANCE hInstanceは、
HINSTANCE hPrevInstance、
LPSTR lpCmdLine、int型nCmdShow)
{ 
  のMessageBox(NULL、" こんにちは!"" タイトル" 、MB_OK); 
}


パッケージはtest.c.を存在すると想定されます

2.ビルドVS2005でのWin32コンソールアプリケーションは、注意がアプリケーション設定空のプロジェクトに設定されている。test.cのは、それから行くためにプロジェクトに追加します。

3.vs2005確立エンジニアリングのデフォルトは、UNICODEサポートで、私はこれを持っているので、プロパティページウィンドウを起動し、メニューから[プロジェクト] - > [プロパティ]を選択しないでください。左側の列に選択します。Configurationプロパティ - >全般、文字セットの後、右側の欄には、使用マルチバイト文字セットに変更しました。

4.コンパイル、間違いがあります。

MSVCRTD.LIB(crtexe.obj):エラーLNK2019:参照未解決の外部シンボル_main 機能___tmainCRTStartup 
C:\テスト\デバッグ\ TEST.EXE:致命的なエラーLNK1120:1つの未解決の外部

5.方法VS2005の設定を設定する上でフォローして、コンパイルエラーは、現在行っています!

 

同様に、あなたは、新しいWindows 32のプログラムですが、エントリ関数コンソールプログラムを使用する場合:無効メインを(){}。図に対応するプログラムの種類に応じて変更することができます。

おすすめ

転載: www.cnblogs.com/rainbow70626/p/11823720.html