0

Visual Studio でリンカーにポイントするように依頼した新しいメイン関数があります。

この機能を正しく実行できます。ただし、取得しているコマンド ライン引数が正しくありません。

現在、これは私の署名です

int NewMain(int argc, const char* argv[])
    {
    cout << "New Main" << endl;
    for (int i = 0; i < argc; ++i)
        {
        cout << argv[i] << "\n";
        }
    return 0;
    }

ただし、標準のメインで同じ関数を使用すると、すべての引数が取得されます。

4

2 に答える 2

4

リンカーへのエントリ ポイントを指定すると、呼び出される関数には引数が渡​​されません。その署名はint entrypoint(void);

コマンド ラインが必要な場合は、 で取得できますGetCommandLine。それを引数に解析したい場合は、独自に行うか、 -- を使用できますが、これはワイド文字バージョンでのみ使用できることCommandLineToArgvW注意してください。)自分でそれをしなければなりません。charwchar_t

于 2012-12-17T21:01:33.423 に答える
3

msdn のコミュニティ アドオン:

コマンド ライン引数を使用したカスタム エントリ ポイント関数 コマンド ライン引数を使用し
てカスタム エントリ ポイントを指定することはできません。そのようなエントリ ポイントを指定すると、mainCRTStartup が呼び出されなくなり、エントリ ポイントに次のようなコマンド ライン引数が提供されないためです。 int argc および char* argv[]。

http://msdn.microsoft.com/en-us/library/f9t8842e%28v=vs.80%29.aspx

于 2012-12-17T20:59:48.703 に答える