问题标签 [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 投票
2 回答
996 浏览

windows - 我们可以在静态库中使用 C++/Cx(Metro 风格)吗

我正在尝试将本机 sdk 移植到 Windows RT 并帮助我实现缺少的功能来模拟注册表访问,因此我创建了一个静态库(文件->新建->项目...->静态库( Metro Style 应用程序),我已经声明了这样的功能:

但是,当我尝试编译时,出现此错误:

我已经检查并启用了使用 Windows 运行时扩展 ( /ZW)(默认情况下),所以我想知道是否可以在静态库中使用 C++/CX?

0 投票
3 回答
4657 浏览

windows-runtime - 我如何迭代一个 IIterable在 C++/CX 中?

(这也可以表述为“如何迭代从 C++/CX 中的 C# Windows 运行时组件返回的集合?”)

我尝试使用std::for_eachIIterable<T>得到以下编译时错误

错误 C2664: 'std::begin' : 无法将参数 1 从 'my_collection_type ^' 转换为 'Platform::String ^' 没有可用的用户定义转换运算符,或指向的类型不相关;转换需要 reinterpret_cast、C-style cast 或 function-style cast

如何迭代集合?

0 投票
2 回答
1717 浏览

c# - c++ Metro 应用程序与 C# 库构建错误 WMC1006

我刚刚开始一个地铁应用程序。主应用程序是一个 C++ Metro 应用程序。该应用程序构建并运行良好。

我在解决方案中添加了 ac# 库,它构建的一切都很好。

我从 C++ 应用程序中引用了 C# 库,它不会生成以下错误:

错误 WMC1006:无法解析程序集或 Windows 元数据文件“System.Runtime.dll”

错误 EMC9999:类型 Universe 无法解析程序集:System.Runtim,版本......

有什么想法吗?我没有添加对我的 c# 类库的任何引用。这是一个香草地铁图书馆。

谢谢!埃里克

0 投票
1 回答
1415 浏览

multithreading - 使用静态 C++ 库的 Windows 8 WinRT 应用程序为 vccorlibd 定义了多个符号

我有一个适用于 Windows 8 的 WinRT 应用程序,其中包含多个 C++ 静态库和一个 WinRT 本机静态 C++ 库。它没有链接,因为它抱怨与线程模型库相关的多重定义符号:

请注意,它正在尝试将 MTA 线程模型库 (tmmta) 与默认的线程模型库 (tmdefault) 链接。

我在项目属性中找不到任何设置来更改它。我发现最接近的是 CLR 线程属性,但更改此设置无效。我不知道我的解决方案中的哪个子项目正在使用哪个线程模型。

如何以及在哪里可以查看和更改线程模型设置?

谢谢!

0 投票
1 回答
423 浏览

xaml - WinRT XAML 中的硬编码 PCH 名称

WinRT 项目,C++/CX。编译我的 XAML 文件时,生成的代码文件包含

#包括“pch.h”

线。stdafx.h出于遗留代码的原因,我希望以不同的方式调用我的预编译器标头。在项目属性中更改它会影响 C++ 源代码,但不会影响 XAML 编译器 - 它仍然会发出该pch.h行。我在项目属性的任何地方都找不到 XAML 编译器设置。

请问如何更改 XAML 编译器假定的 PCH 名称?

0 投票
1 回答
153 浏览

visual-c++ - 可重用类 - 使用“抽象”而不是预定义

我正在构建一个应用程序,其中有多个从单个基类继承的类。假设我有这个声明:

我有几个实现它的类,例如:

在应用程序的另一部分,我想为任何潜在的实现提供一个容器WorkScreenBase,所以我尝试使用:

但是,这似乎是非法的。解决问题的最佳方法是什么?

更新:我可以使用 a MainScreen^ myCurrentScreen,但出于灵活性原因,我更愿意使用基类作为参考点。

0 投票
1 回答
5765 浏览

c++ - 在 Metro C++ 中将图像从内容加载到 StorageFile^

我正在尝试使用 Share Charm 在 Windows 8 Metro C++ 应用程序中共享图像。为此,我需要先将图像加载到 StorageFile^。我认为它应该看起来像:

imageFile头文件中定义的位置

这个实际的代码会抛出这个异常

这似乎很琐碎,但是关于在 Metro 中共享的文档很少,并且唯一的 Microsoft 示例显示了如何使用 FilePicker 进行共享。

如果有人知道如何正确地做到这一点,将不胜感激。

0 投票
4 回答
25756 浏览

c++ - C++ 中的 _In_ 是什么?

我对此进行了很多搜索,但没有找到有用的结果。

我目前正在尝试为 Windows 8 Metro 编写简单的 DirextX 游戏,并且遇到_In_了很多。我只是想知道它是什么。

另外,我看到了很多^用作指针的用法*,我觉得很奇怪。最重要的是,一些类有一个接口ref class MyClass,我相信这是为了 C# 的易读性。

无论如何,任何帮助都会很棒。

0 投票
1 回答
342 浏览

visual-studio - Doxygen 是否支持 C++/CX 语法?

Doxygen 似乎对一些C++/CX语法结构(微软为 Windows 8 开发引入的新 C++ 扩展)感到困惑。这是一个已知的问题?有补丁可以让它工作吗?还是使用更好的文档系统?(请记住,有问题的代码库也可以在非 Microsoft 平台上运行。)

0 投票
1 回答
2864 浏览

directx - C# XAML Metro 应用程序使用 WinRT 组件在异步方法上调用 task.wait() 或 task.get() 抛出:未处理的异常 0xc0000409

我最近一直在使用 Windows 8 进行大量试验,使用用 C++/CX 编写的 WinRT 组件编写 C# XAML Metro 风格的应用程序,以获得更好的性能并使用 C# 中不可用的功能,特别是 DirectX。

在我的 WinRT 组件中从我的应用程序包中加载资源时,我的应用程序抛出了以下内容:

TestResources.exe 中 0x0fd58ae3 (MSVCR110D.dll) 处未处理的异常:0xC0000409:0xc0000409。

我试图对新的 StorageFile API 进行异步调用(Windows::Storage::StorageFile::GetFileFromApplicationUriAsync 链接到其他调用以读取文件内容)并使用 concurrency::task.get() 同步生成的任务链。

它似乎没有工作。如果我没有调用 concurrency::task.get() 或 concurrency::task.wait(),则问题不会发生,但由于我的 DirectX 代码是如何编写的,我需要同步结果。