问题标签 [c++-winrt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
321 浏览

c++-winrt - idl 枚举的格式是什么?

在我的空闲状态下,我尝试过-

我收到 - MIDL2025 [msg] 语法错误 [context]:期望“;”附近有一个标识符
MIDL2025 [msg] 语法错误 [context]:需要关键字“interface”或...

0 投票
1 回答
502 浏览

uwp - 如何在自定义控件上使用 TemplatePart 属性?

我开始使用新的 C++/WinRT 语言投影开发 UWP XAML 自定义控件。TemplatePartAttribute我得到了正确的基本结构,但是在定义属性时我被卡住了。在 C# 甚至 C++/CX 中,这非常简单,因为该语言直接支持这一点。

现在在 C++/WinRT 中,我假设我必须runtimeclass在 MIDL 源代码中定义属性,但我不知道如何正确处理。例如:

虽然 the 的Name属性TemplatePartAttribute很容易设置,因为它是 a String,但我该如何设置Type属性 - 三个 ??? - (这是TypeNameWindows 运行时中的一个)?我在官方 C++/WinRT 文档和 MIDL 3.0 文档中都没有找到任何关于此的文档。

编辑(解决方法)
似乎TemplatePart不需要在代码中使用模板部分(使用方法)该属性,无论如何GetTemplateChild()我都可以获得对元素的引用。PART_Button

0 投票
1 回答
131 浏览

visual-studio - Visual Studio 找不到 debuggerutils.h

我已经安装了 Visual Studio 15.9.0,预览版 3,并使用对 C++/winrt 的新平台支持创建了一个项目。在我设置断点之前,该项目运行良好。当中断被击中时,VS 告诉我“你需要找到 debuggerutils.h 来查看当前调用堆栈帧的源代码”它告诉我这个文件最初位于 onecore\com\combase\inc\debuggerutils.h,尽管它没有不要告诉我通往onecore的道路。搜索找不到这样的文件。有谁知道如何找到该文件或安装它?我刚刚假设 VS 会自动包含调试功能。[更新]似乎不是断点的设置,而是在此之前导致中断的错误。但是我仍然对错误消息感到困惑。

0 投票
0 回答
148 浏览

c++ - 将 Nuget 包“Microsoft.Xbox.Live.SDK.WinRT.UWP”与 CPP 一起使用

我正在努力让 Xbox Live 登录适用于我的游戏。其他一切都准备就绪,现在这是最后的障碍。

查看 MSDN 文档页面 -这里,看起来应该是微不足道的。但是,我没有使用 CX/CPP,仅使用 CPP / winrt,因此,我希望使用Microsoft.Xbox.Live.SDK.WinRT.UWP而不是Microsoft.Xbox.Live.Sdk.UWP

在我的项目中,我添加了链接,但不清楚我接下来要做什么。我期待然后自动创建 C++ 标头,但我看不到任何正在构建的东西。有没有人:

  1. 知道用于在 CPP/WinRT 世界中登录的等效代码吗?
  2. 知道它不能完成/我应该使用不同的方法吗?

感激地收到任何帮助。抱歉,如果这是 Cpp/winrt 101。我一直在使用来自MS Blogs / Chuck W的模板,所以其他一切都“正常工作”,所以我可能遗漏了一些明显的东西。

谢谢

史蒂夫

0 投票
1 回答
168 浏览

visual-studio - 禁用/重新启用 xaml 设计器后,Visual Studio 2017 无法构建空白应用程序?

我正在尝试从 VS2017 创建的 BlankApp1 开始重建 C++/winrt 应用程序 - 起初,blankapp 构建并运行得很好,但后来我尝试使用工具/选项/xaml 中的禁用开关禁用 xaml 设计器(我更喜欢不要使用设计器)。但是,原始示例 xaml 文件仍然存在,因此示例界面仍然存在。我尝试删除 xaml 文件,之后什么都不会构建。最后我删除了整个 blankapp 目录,在 VS 中重新打开 xaml 设计器,重新启动 VS,现在已经尝试了两次来创建和运行新的 BlankApps,而不更改其中的任何内容。我收到构建错误:“无法打开包含文件'XamlMetaDataProvider.gh'(编译源文件 GeneratedFiles\XamlTypeInfo.Impl.g.cpp)” 有谁知道要在 VS 中进行哪些更改以使其再次起作用?如果我想禁用设计器,是否足以在选项中将其关闭,或者某些文件也需要更改?

0 投票
1 回答
381 浏览

c++ - 在 winrt/c++ 中使用 AppService

我正在尝试在 winrt/c++ 中使用 AppService,遵循 C++/Cx 中的 github 示例。我总是得到“AppUnavailable”的结果。我已确认我连接到正确的服务名称并具有正确的家庭包名称。

我的应用清单:

我的提供者头文件(在 Mainpage.h 中):

我的 MainPage.idl 文件:

在 IDL 生成期间,我收到以下警告:

我有点担心 Inventory::Run 会被链接器剥离,因为它没有在服务提供者内部使用,但我不知道为什么它不起作用。提供者和客户端处于两个不同的解决方案中,彼此之间没有引用,但我认为这不是必需的。服务提供者已部署,但未启动。启动没有区别。

0 投票
1 回答
1706 浏览

c++ - co_await 表达式需要 await_ready 函数

我有一个 Win32 程序,我想在其中添加一些 winRT 调用。我想在没有 GUI 界面的情况下打开文件。

我使用 StorageFile 类中的异步文件打开调用,因为下一个调用需要 IStorageFile 接口。

目前,编译器抱怨 co_await 表达式需要一个合适的“await_ready”函数,但没有找到。

我不确定这是否是由于缺少标头包含或“co_await”不能在 win32 应用程序中使用。

编辑:我的 Visual Studio 项目设置是: - 使用 c++17,将 cppwinrt.exe 添加到我的包含目录,链接到 windowsapp.lib 并使用 windows sdk 版本 10.0.17134.0。

0 投票
1 回答
318 浏览

c++-winrt - 如何将不同的选项传递给 cppwinrt.exe

我有一个从 Visual Studio 模板创建的 cppwinrt 项目,我想将不同的选项传递给 cppwinrt.exe 以测试编译器中可用的内容。Visual Studio 中是否有一个菜单,我可以在其中提供命令行参数,类似于如何从 VS2017 中的配置属性向 MSVC 编译器提供参数?

0 投票
2 回答
378 浏览

visual-studio - 如何以编程方式在 Visual Studio 2017 中添加 xaml 元素?

我有一个 C++/winrt 项目,其中包含用 C++ 代码创建的复杂动态 xaml 接口。现在我正在迁移到最新的 VS 15.9.0 Preview 3,它具有 C++/Winrt 平台支持,并且还允许在这样的项目中使用 xaml 设计器。但我不想使用设计器并在工具/选项/Xaml 中将其关闭。结果是我的任何编程 xaml 元素都没有出现。该项目似乎希望我在 xaml 代码页中输入这些元素,而不是使用 C++,例如 Grid()、StackPanel()、view.RowDefinitions.Append()、view.SetRow() 等。 GeneratedFiles 文件夹现在是充满了以前项目中不存在但无法删除的项目。是否仍然可以将 C++ 接口用于 xaml,如果可以,必须做什么才能启用它?谢谢。

0 投票
1 回答
359 浏览

uwp - 有没有办法从 UWP 应用程序中的 IVpnProfile 获取 ConnectionStatus?

我有以下 WinRT 代码,可以很好地发现活动的 VPN 配置文件:

我想检查 ConnectionStatus 但这在 IVpnProfile 界面上不可用。我尝试添加以下内容无济于事,因为 ConnectionStatus 在具体的 VpnPlugInProfile 和 VpnNativeProfile 类中可用:

这只会给出一个无效的句柄错误。

有没有办法从 IVpnProfile 获取 ConnectionStatus?