1

このような初歩的な質問で申し訳ありません。これまでにこれに遭遇したことはありません。オンラインで調べましたが、argc と argv の説明しか見つかりません。

とにかく、Visual Studio 2012 で新しい win32 コンソール プロジェクトを開始しました。空のプロジェクトをクリックし、内容が次のような program.cpp を追加することから始めました。

#include <iostream>
#include <Windows.h>

int main(int argc, char** argv)
{
    printf( "%d", argc );
    getchar();
    return 0;
}

引数を使用してプログラムを作成する予定です。そのため、argc が適切に機能する必要があります。about のコードは「21374903」のような巨大な数値を出力します。プロパティ -> リンカー -> 詳細設定で、エントリ ポイントを「main」に設定しました。

私が間違っていることはありますか?正しく動作するように設定を追加できますか?

4

1 に答える 1

7

プロパティ -> リンカー -> 詳細設定で、エントリ ポイントを ' main' に設定しました。

そうしないでください。エントリ ポイントは、C ランタイム (CRT) エントリ ポイントである必要があります。これは、C 初期化を実行し、オペレーティング システムから引数を取得し、それらを使用してmain関数を呼び出します。

エントリ ポイントの名前をリンカに明示的に伝えない場合、リンカは自動的に正しいものを選択します。呼び出す CRT エントリ ポイントにmainは名前が付けられていますmainCRTStartup(Visual C++ でサポートされている他の種類のメイン関数を呼び出す、他の名前の CRT エントリ ポイントがあります)。

于 2013-07-10T01:59:46.837 に答える