您如何读取更新的 C++/WinRT/XAML UWP 应用程序的命令行参数

How do you read command line arguments for the updated C++/WinRT/XAML UWP apps

我找不到任何关于如何处理 C++/WinRT 的命令行参数的文档,XAML 应用程序。

在 Visual Studio 15.9.6 中,应用程序属性确实提供了一种在开发过程中输入命令行参数的方法,但无法处理它们。

对于空白应用 (C++/WinRT) 模板,App.cpp 文件具有以下内容:

/// <summary>
/// Initializes the singleton application object.  This is the first line of authored code
/// executed, and as such is the logical equivalent of main() or WinMain().
/// </summary>
App::App()
{
   ...
}

其中提到了 main() 和 WinMain()。

我希望有一些 main() 或 WinMain() 读取参数,然后由应用程序处理这些参数。

有几种方法可以在 UWP XAML 应用程序中获取命令行参数。获取命令行的自然方法是覆盖 Application::OnLaunched member, that gets passed a LaunchActivatedEventArgs argument. Its Arguments 属性 保存命令行。

或者,您可以查询 OS:GetCommandLineW returns the command line from anywhere inside the application. (Note, that CommandLineToArgvW 将命令行解析为单个参数在 UWP 应用程序中不可用。)

如果您确实需要将命令行分解为单独的参数,则必须使用 Microsoft 对其 C 运行时实现的特定扩展:__argc and __wargv 以与您相同的方式提供分解的命令行参数让他们通过标准 main 入口点。