代码之家  ›  专栏  ›  技术社区  ›  codeLover

C++在控制台C++应用程序中使用WIndows::System::Launcher类成员函数的示例

  •  0
  • codeLover  · 技术社区  · 9 年前

    我想利用“Launcher类”的成员函数 Launcher class 从控制台C++应用程序,而不是windows商店应用程序(而是在控制台应用程序EXE中)。

    与任何一般的WIndows API不同,它至少包含DLL和头文件,它包含命名空间WIndows::System和元数据“WIndows.winmd”。

    因此,这意味着它使用.NET框架(公共语言运行时)来实现这一点:themesapce WIndows.System中的Launcher类。

    我更改了“属性”中的VS设置->配置->COmmon语言运行时可疑端口包括CLR。

    我正在使用:

    using namespace System;
    

    但我看到Launcher类不在这里。 我也尝试过

    using namespace Windows.System;
    

    因为Launcher类位于WIndows.System命名空间中,但在此处也找不到Launcher类。

    我可以请您提供使用Launcher类成员函数的代码段帮助吗。

    1 回复  |  直到 9 年前
        1
  •  3
  •   robwirving    9 年前

    我最初不认为这可以做到,但这似乎是可能的。

    Sridhar Poduri组合了一个Visual Studio扩展,用于创建C++/CX控制台应用程序项目模板。 https://visualstudiogallery.msdn.microsoft.com/e9210454-c1b5-4d89-b8ca-92a64dfb8d28 基于此模板构建的项目将能够调用C++/CX API,例如Windows::System::Launcher::LaunchURIAsync()。然而,我不确定这个特定的API是否可以从命令行应用程序中使用,当我尝试它时,它引发了一个异常。

    如果您想知道如何将普通Win32控制台应用程序模板更改为使用C++/CX,请在项目设置中更改以下内容。 在C/C++->全体的

    1. 将“使用Windows运行时扩展”设置为“是/ZW”
    2. 将这些路径添加到“其他#使用目录”中:“C:\Program Files(x86)\Microsoft SDKs\Windows\v8.1\ExtensionSDKs\Microsoft.VCLibs\12.0\References\CommonConfiguration\neutral\;C:\Program File(x86)\Windows Kits\8.1\References\CommonConfiguration\neutral;%(AdditionalUsingDirectories)”

    在C/C++->代码生成

    1. 将“启用最小重建”设置为“否/Gm-”

    进行这些更改应允许您编译使用C++/CX API的代码。下面是一些示例代码:

    #include <iostream>
    using namespace std;
    using namespace Platform;
    
    int main(Platform::Array<Platform::String^>^ args)
    {
        Platform::Details::Console::WriteLine("Hello World");
    
        return 0;
    }
    

    此外,我只想指出,您所引用的Launcher API绝对不是C++\ CLI。C++\ CX与C++\ CLI具有相似的语法。