如何在 C++/WinRT 控制台应用程序中包含系统

How to include System in C++/WinRT console application

使用Visual Studio 2019 16.10.2 如何在C++/WinRT 控制台程序中包含.NET 组件?

The indexOf method of IVector requires a UInt32 struct 来自 System.

System 在这种情况下是如何使用的?尝试使用命名空间会导致

"System' : a namespace with this name does not exist"

This has been covered already on SO,但仅适用于 C++/CLI 应用程序,而不适用于 C++/WinRT 控制台应用程序的上下文。 post 中提供的解决方案也不起作用。

#include "pch.h"

#include <Windows.h>
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>

using winrt::Windows::Foundation::Collections::IVector;
using namespace System;

int main()
{
    IVector<int> foo;
    foo.Append(1);
    UInt32 bar;
    foo.indexOf(1, bar);

    return EXIT_SUCCESS;
}

在这种情况下 pch.h 是空的。

当您从右上角 documentation 的语言下拉列表中 select 选择适当的语言 (C++/WinRT) 时,您将看到特定于 C++/WinRT 的签名:

bool IndexOf(T const& value, uint32_t & index);

您需要更换

UInt32 bar;

uint32_t bar{};