如何在C ++中访问新主函数的参数?

时间:2012-12-17 20:47:22

标签: c++ visual-studio visual-c++ linker visual-studio-2010

我有一个新的main函数,我让链接器指向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;
    }

然而,当我使用与标准main相同的函数时,我得到了所有的参数。

2 个答案:

答案 0 :(得分:4)

当您指定链接器的入口点时,被调用的函数不会传递任何参数。它的签名是int entrypoint(void);

如果您需要命令行,可以使用GetCommandLine检索它。如果你想将它解析为参数,你可以自己这样做,或者使用CommandLineToArgvW - 但请注意,这是在宽字符版本中可用,所以如果你想要一个标准的命令行(使用char,而不是wchar_t),你必须自己做。

答案 1 :(得分:3)

来自msdn的社区插件:

  

带命令行参数的自定义入口点函数
  无法使用命令行参数指定自定义入口点,因为当您指定此类入口点时,不再调用mainCRTStartup,因此不提供带有命令行参数的入口点,例如int argc和char * argv []

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