问题标签 [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 回答
2695 浏览

c++ - Can C++/CX and C++/WinRT be used in the same project?

Earlier this week, Kenny Kerr presented C++/WinRT at CppCon 20161. It is a Standard C++ projection for the Windows Runtime, based on Modern.

As far as I understand, the C++/CX compiler/preprocessor/code generator doesn't touch Standard C++ code, and with C++/WinRT being a Standard C++ library it is my naïve interpretation, that both C++/CX and C++/WinRT can be used in the same project.

Questions:

  • First things first: Is my naïve interpretation correct?
  • If so, can C++/CX and C++/WinRT be used in the same compilation unit?
  • At what granularity can C++/CX and C++/WinRT be mixed, in case they cannot reside in the same compilation unit?
  • Can C++/WinRT consume types implemented with C++/CX in the same project? (I expect this to be difficult, since the C++/WinRT compiler needs to generate headers from the .winmd metadata, so there is a dependency on the (pre-)compiler output.)

In case it matters, answers to those questions allow me to make decisions now on how to move my C++/CX projects into the future.


1 Embracing Standard C++ for the Windows Runtime (on YouTube).

0 投票
1 回答
86 浏览

win-universal-app - 在 StorageFile 上找不到 OpenSequentialWriteAsync() 方法

这是用 C++/winRT 编写的,最终将取代 C++/CX。以下 3 行代码位于对 OpenSequentialWriteAsync(). 但是,唉,没有这样的命令,只有 OpenSequentialReadAsync().

是否有不允许创建顺序文件的原因???

0 投票
1 回答
112 浏览

uwp - 在哪里可以找到一些在 c++/winrt 中为 uwp 程序切换视图的示例

如何从一种视图切换到另一种视图?

例如,一个视图是用于直接绘制的 IFrameworkView,另一个是 ApplicationT。

我想用 UI XAML 应用程序加载我的应用程序,然后按一些东西来切换到 IFrameworkView 的实例以进行动画渲染。我怎样才能做到这一点?

0 投票
1 回答
139 浏览

c++ - 如果我在 Xbox UWP 应用上收到激活错误,并且错误消息中没有任何有用的信息,我该怎么办?

我最近在开发模式下收到了 Xbox 系统更新推送。我的程序 winrtcpp 程序停止工作,而其他 c++/cx 程序仍在 xbox 上运行。同时,我没有更改我的代码或相关依赖项。并且程序在 PC 上运行正常。

是否有解决此类 Windows 应用程序激活问题的一般策略。

错误消息:“无法激活 Windows.Store.app ...进程已启动,但激活请求失败并出现错误‘应用程序未启动。’”

0 投票
1 回答
326 浏览

c++ - cppwinrt 示例中的神秘崩溃

我正在使用 Visual Studio 17 v15.0 和 Win 10 周年更新 SDK。

我使用、或构建以下代码(基本上是 github repo 中的示例)。它编译没有错误。cl /EHsc /O2 /DUNICODE /bigobj /await /std:c++latest/MTMD

如果我在当前目录中不存在“message.png”时运行,则会抛出异常,并使用 printf 捕获并报告,然后退出而不会崩溃。

如果我在当前目录中存在“message.png”时运行,“Hello World ” 将被打印,然后无缘无故崩溃。

奇怪的是,如果我在 GDB 调试器中运行它,GDB 总是说程序正常退出(实际上没有发生崩溃)。

GDB 输出:

代码:

0 投票
1 回答
1494 浏览

c# - 从 C# 使用 C++/WinRT 组件

我有一个用 C++/CX 编写的项目(动态库),这个项目由一个用 C#(针对 x86 和 ARM32)编写的 Windows 10 通用应用程序使用。
我想将库重写为C++/WinRT以使用 vanilla C++。

Q1:是否可以创建一个 C++/WinRT DLL 并从 C# 中使用它?
Q2:如何设置 C++/WinRT 项目以使其能够从商店应用程序中使用?

0 投票
1 回答
282 浏览

visual-c++ - 没有返回语句的非无效协程

我正在尝试围绕 C++ 协程功能展开思考。我阅读了 Kenny 的文章 ( C++ - Introducing C++/WinRT ) 并尝试观看此演示文稿,CppCon 2016:James McNellis “C++ 协程简介”。我一直看到没有某种形式的 return 语句的非 void“函数”。作为一个例子,请参阅 Kenny 文章中的以下代码示例。PrintFeedAsync函数/协程具有IAsyncAction返回类型,但定义中没有返回语句。有人能解释一下这是如何工作的吗?

0 投票
2 回答
764 浏览

c++ - 如何使用 C++/WinRT 和 ANGLE 创建 EGLSurface?

我正在使用ANGLE 项目的 Microsoft 分支来访问通用 Windows 应用程序中的 OpenGL。此外,我尽可能多地使用C++/WinRT 绑定来编写标准 C++ 代码。

我从 ANGLE 项目中的一个示例开始,并尝试将 C++/CX 代码转换为 C++/WinRT 代码,但我找不到创建 EGL Surface 部分的解决方案:

在 C++/CX 中,他们使用以下代码,但我必须承认,我不知道他们如何从带有 CoreWindow 的 PropertySet 到 EGLNativeWindowType(在本例中为 HWND)以及如何将其转换为 C++/WinRT 代码:


编辑:当天真地将代码转换为 C++/WinRT 约定时,reinterpret_cast 会给出“无效转换”错误(从 IInspectable 到 EGLNativeWindowType)。

编辑:为了完整起见,window参数是 Windows::UI::Core::CoreWindow。

编辑:实际上这个类似问题的答案提供了很多很好的信息,我会进一步调查。

编辑:在阅读了上一个编辑中链接的答案并查看了 ANGLE 源代码中的正确位置后,我发现我的困惑是由 ANGLE 的 Windows 端特定的实现细节引起的。该函数不期望传统意义上的 HWND 句柄,而更像是伪装成 HWND 的设置字典。此外,reinterpret_cast 错误是由于我试图将对象强制转换为指针,我很傻。

0 投票
0 回答
130 浏览

c++ - 在 C++ Windows 通用应用程序中提升文件系统问题

我正在使用 c++/winrt。我必须使用 boost 文件系统。但看起来 boost 和 winrt 中的关键字“通用”是冲突的。如果有有什么办法可以摆脱?或者我们不能在winrt上使用boost?

0 投票
2 回答
304 浏览

c++ - 在 cppwinrt 中以编程方式创建图像按钮

使用 cppwinrt(标准 C++,而不是 C++/CX)如何以编程方式将 Button 的内容设置为图像?必须以编程方式进行,因为 cppwinrt 还不支持 xaml,这样做很容易。这是我正在尝试的,这会导致一个功能但为空的按钮:

然后当然我添加了按钮,它确实显示得很好,虽然是空白的。我尝试了.png 的绝对路径,但这也失败了。必须有一种方法可以在 C++ 中以编程方式执行此操作。