2

我想使用 C++/WinRT 为卡在 Win 10.0.14393(或 1609)上的 Lumia 制作一个应用程序。我创建了一个空白应用项目

  • 目标平台版本:10.0.17134.0 和
  • 目标平台最小值 版本:10.0.14393。

项目编译失败,出现以下错误:

错误 C2039:“DisconnectUnloadedObject”:不是“winrt::BlankApp2::implementation::MainPageT”的成员

错误 C2039:“UnloadObject”:不是“winrt::BlankApp2::implementation::MainPageT”的成员

这是错误还是故意行为?请注意,设置任何更新的分钟。版本导致成功构建。

4

2 回答 2

1

最新版本的 C++/WinRT 可以支持所有版本的 Windows 10,包括 14393 和更早的版本。

请记住,C++/WinRT 既是库又是语言投影。语言投影提供对针对给定 Windows 版本的 Windows API 的访问。每个版本都引入了新的 API。因此,如果您想以最低版本的 Windows 为目标,您需要确保将自己限制在该版本的 Windows 上可用的 API。但是,我建议使用最新的编译器和最新的 Windows SDK,因为它们包含许多错误修复。

于 2018-11-07T16:28:24.813 回答
0

我建议您在针对较旧的 C++/WinRT 和 Windows 10 更新时使用 Visual Studio 2015。我的印象是,其中大部分是在 Visual Studio 2015 之上提供的,包括 Visual Studio 2015 更新、Windows 10 SDK 更新和 C++/WinRT 更新。

将 Visual Studio 2015 与 C++/WinRT 一起使用时,您将需要最新更新 Update 3。检查更新并确保您的 Visual Studio 2015 副本具有最新更新。我只是使用安装 Visual Studio 2015 Enterprise 来重新编译可以与 Visual Studio 2017 正常编译的东西,发现我缺少工具和 SDK,包括我尚未安装的 Update 3 中的 Win 10 SDK 10.0.14393 .

您还可以从控制面板中转到程序和功能,在列表中查找 Microsoft Visual Studio 2015,然后单击鼠标右键并更改,这将允许您检查已安装的内容并更改任何内容。

在过去的几个月里,我使用 C++/WinRT,我同时使用了 Visual Studio 2017 社区版和 Visual Studio 2015 企业版。

在将解决方案从 VS 2015 迁移到 VS 2017 时,我发现了差异,这需要我查看解决方案的“属性”页面。另请参阅 将 SDK 与 Windows 10 更新同步以及将 WinRT 与标准 C++ 一起使用中的讨论

使用最新的 Windows 10 更新和 VS 2017 最适合我,因为我能够针对最近的 Windows 10 更新。但是,我发现尝试使用 VS 2017 来定位较旧的 Windows 10 更新可能会出现问题。

对不起,我不能更具体。C++/WinRT 和 Windows 10 更新的整个领域比我想要的要多得多,尽管它现在似乎正在安定下来。

C++/WinRT 是一个模板库,最初是 GitHub 上的一个开源项目。我的印象是微软已经收购了它,它现在是标准产品。我相信随着 Visual Studio 2015 和 Visual Studio 2017 开始实施更多的 C++17 和提议的 C++20 标准和协程技术规范,曾经对 C++/WinRT 进行了重大重写。

这似乎是一个在某种程度上仍在变化的领域。然而,大部分变化发生在 VS 2015 和早期的 VS 2017 以及 SDK 上。现在有了最新的更新,它似乎相当稳固。

于 2018-11-06T14:15:34.463 回答