问题标签 [c++-cx]

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 投票
1 回答
1691 浏览

c++ - Winrt C++ - 在头文件中包含名称空间使用?

可能重复:
C++ 头文件中的“使用命名空间”

我是 WPF 领域的 ac# 开发人员,但我决定在 C++ 中完成我所有的 Winrt 开发。

我感到困惑的一件事是using在头文件中使用(或不使用)语句(而不是输入完全限定的类型名称)。

using在头文件中包含语句要容易得多。许多 Microsoft Winrt 示例using在标头中包含语句,使代码清晰易读。但是,我一直在浏览 John Petzolds 新书预览中的 c++ 示例,他要求标题中不要包含所有using语句。

我不明白赞成和反对的观点,当我用谷歌搜索时,我得到了很多反对意见。

谁能给我一个明确的解释这个问题,因为它与 Winrt 世界有关(我对其他环境中的 c++ 不感兴趣)

谢谢

0 投票
1 回答
330 浏览

windows-8 - 如果不是视觉树的一部分,Canvas 就没有父级?

我正在为 Windows 8 Metro 编写应用程序,但在理解 Canvas 的子父关系如何工作时遇到了问题。似乎当我将一个画布添加到另一个画布的子画布时,子画布的 ->parent 属性等于 null ,直到将父画布添加到可视树中。下面是一些显示问题的示例代码。

我也尝试使用 VisualTreeHelper 来获取父级:

并且行为仍然存在:在将 testCanvas 添加到可视化树之前 theParent 为空,并且在将 testCanvas 添加到可视化树后不为空。

如果这不是一个错误,有人可以告诉我如何在父级不属于可视化树的情况下获取子画布的父级吗?如果是错误,是否有任何已知的解决方法?谢谢!

0 投票
1 回答
301 浏览

c# - 在一个项目代码中使用“C# via XAML”和“C++/CX via XAML”

我想在一个应用程序中使用 WinRT 代码“C# via XAML”和“C++/CX via XAML”。

第一种形式是用“C# via XAML”编写的,第二种形式是用“C++/CX via XAML”编写的。

打开表单输入以下代码:

我怎样才能在一个项目中同时完成这两项工作?

0 投票
1 回答
5552 浏览

windows-8 - 为什么在自定义 WinRT C++/CX 控件中默认添加 [Windows::Foundation::Metadata::WebHostHidden]?

当我在 WinRT C++/CX 项目中创建新控件时[Windows::Foundation::Metadata::WebHostHidden],Visual Studio 2012 默认添加了 class 属性。

例子:

  • 是否有任何记录在案的原因?(我做了功课,但我没有找到这条信息)
  • 据我所知,使用该属性[WebHostHidden]会使该类对 WinRT HTML/Javascript 项目不可见。这是否意味着我无法在 C++/CX 中创建可在 Javascript 中使用的控件?
0 投票
2 回答
17706 浏览

c++ - create_task 和返回值

我需要在我声明的方法中调用 Async 方法。该方法应该返回一个值。我正在尝试将对 Windows 应用商店的调用包装到一个易于使用的类中。我的方法应该是这样的:

enum_InAppOption是一个枚举,包含所有要购买的应用内选项。在某些时候我需要打电话RequestProductPurchaseAsync。此调用的结果确定该方法是否应返回truefalse。我是 c++/cx 的新手(或者至少从现在到上次使用 c++ 之间我有很长的历史),所以也许这比我想的更容易。

create_task看起来像这样:

我考虑/尝试的选项:

  1. 返回任务不会抽象商店

  2. 试图调用等待任务。我有例外An invalid parameter was passed to a function that considers invalid parameters fatal.

  3. 尝试使用structured_task_group,但似乎这不允许非 void 返回方法,或者我试图提供错误的解释。编译器返回错误 C2064(谷歌搜索但我不明白要更改什么)

  4. 使用一系列任务和when_all

在页面中间的http://msdn.microsoft.com/en-us/library/dd492427.aspx#when_all上找到以下代码:

所以我试着把它翻译成下面的代码:

即使我包括编译器抛出 C2065('array':未声明的标识符),C2275('Concurrency::task<_ReturnType>':非法使用这种类型作为表达式和一些错误似乎是跟进这两个错误.

总结一下:如何在异步任务完成后让方法返回,这样我就可以根据异步进行的东西返回有意义的结果?

0 投票
1 回答
179 浏览

microsoft-metro - 在 ARM 平台的 Metro 风格应用程序中使用 x86 或 x64 库

我想在 Metro 应用程序中使用较旧的 C++ 库。我可以将这个库构建为 x86 或 x64。基本上我想做的是为这个库编写一个 C++/CX 包装器。

但是在 Visual Studio 中,我看到我的包装器项目的可用平台是:Win32、ARM 和 x64。我猜它可以在 Win32 和 x64 平台上正常工作,但是当我为 ARM 平台构建时,我可以使用该库吗?

0 投票
2 回答
4235 浏览

c++ - platform::string Windows 8/RT C++ 中的函数

可能重复:
Platform::String 有点没用

我是 Windows 开发的新手,新的 Visual C++ API 让我抓狂。我最近遇到了一个似乎缺少字符串函数的问题。是否有可用的基本功能,例如:

  • 子串
  • strpos 或类似的
  • 常用表达

我的最终目标是采用“C:\foo\bar\baz.jpg”之类的文件路径并提取最深的目录。在这个例子中,我正在寻找“bar”。

也许更令人担忧的是,我发现要找到 Win 8 API 的当前文档非常困难。寻找此类问题的最佳地点是什么?

0 投票
1 回答
1112 浏览

c++ - 属性通知更改了 C++/CX 绑定中的等效项

在 C# 中,我经常创建返回函数调用结果的属性 getter。这意味着我需要使用 OnPropertyChanged 手动触发属性更改通知。这个过程对于 C# 和 VB 都有很好的记录,但我似乎找不到 C++/CX 等价物。这样的事情是否存在,还是我必须找到一种新的编程模式?

这是一个显示我的问题的基本示例:

0 投票
1 回答
375 浏览

windows - 我可以在 Windows RT/8 中使用弱引用作为实例变量吗?

我正在我的一个项目中实现一棵树。每个节点都包含一个向量,其中包含零个或多个子节点。每个节点还包含对其父节点的引用(根的父节点引用为 nullptr)。这是类定义的示例:

首先,这会导致内存泄漏吗?我假设这些是两个方向的强引用,因此对象上的引用计数将保持在零以上。

我见过 Platform::WeakReference 的例子,但从来没有作为实例变量。这可能吗?语法会是什么样子?

0 投票
1 回答
951 浏览

xaml - 如何将 C++/CX 库添加到针对任何 CPU 的 Windows 应用商店解决方案

所以我有一个使用 C# 的 Windows Store 应用程序,目标是任何 CPU,这样单个应用程序就可以在任何 Windows 8 x86/x64 台式机/平板电脑或 ARM 平板电脑上运行。我需要在 C++ 中添加一些特殊代码,这些代码似乎没有针对任何 CPU 的选项。该代码将在 x86/x64 上编译和运行,如果我将整个解决方案更改为 ARM,它也将在那里编译和运行。所以我正在寻找一种方法来使 C++ 以任何我认为可能不可能的 CPU 为目标。或者多次编译 C++ 库(x86、x64 和 ARM)并将它们全部包含在 appx 包中。我花了大约 3 个小时阅读有关 C++/CX 的 Windows Store 开发文档,但还没有找到任何方法来做到这一点。当然,我会继续寻找,但我希望其他人已经看到了如何做到这一点,并能指出我正确的方向。