问题标签 [wrl]

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 回答
6418 浏览

c++ - 在 C++ / WRL 中使用静态方法创建 WinRT 组件

我想使用C++WRL (Windows 运行时 C++ 模板库)创建一个WinRT组件,以便通过 C# 静态方法调用在托管代码中使用。

对我不起作用的实现如下。
这里有什么问题?

  1. IDL文件中创建一个数学类。它将是托管端静态方法的宿主。使用FastAdd方法创建IMathStatics接口。这个只包含一堆静态方法。使用带有IMathStatics参数的静态属性标记Math类。
  1. 创建MathStatics C++ 类。让InspectableClassStatic宏指向IMathStatics字符串标识符。添加ActivatableStaticOnlyFactory宏以指向MathStatics类实现。
  1. 编译后,将创建WRLNativeComponent.winmd文件。我可以看到具有公共静态 FastAdd方法的Math类。

  2. 构造 C# 客户端以调用静态方法。进行调用时,将引发“System.InvalidCastException” 。这有望正常工作。

0 投票
1 回答
4175 浏览

c++ - 如何使用 WRL 返回内置的 winrt 组件?

当我使用 WRL 创建 winrt 组件时,问题是我只能使用ABI::Windows::xxx命名空间,而不能Windows::UI::Xaml::Media::Imaging在 WRL 中使用命名空间。

那么,如何创建一个内置的winrt组件作为返回值呢?

0 投票
1 回答
2322 浏览

c++ - 不能将 create_async() 与 WRL WinRT 组件一起使用

我想使用 WRL 编写一个支持异步的 WinRT 组件,但我发现create_async()即使我包含了ppltask.h以及using namespace concurrency 如何使用 WRL 模式创建后台任务?

我的功能是这样的:

我也尝试使用IThreadPoolStatics->RunAsync(),但似乎只能在有IAsyncAction和没有返回值的情况下使用。有人可以帮忙吗?

0 投票
1 回答
3470 浏览

c++ - 将 WRL 用于 C++/CX 函数 - 链接器错误

可能重复:
什么是未定义的引用/未解决的外部符号错误,我该如何解决?

我正在尝试制作不使用 CX 扩展的 WinRT 库。我需要获取包的名称、漫游数据文件夹等。我写了一些包装器,但是当我将此库链接到可执行项目时,出现链接器错误

这是包名称包装器

也许我没有得到 WRL,而且我用错了。

谢谢你的帮助:) 托马斯

0 投票
1 回答
454 浏览

c++ - C++/WRL 项目未知命名空间 Windows::Storage

在我的 Windows Store 应用程序中,我使用 C++ 组件来使用 Sink Writer。我为此创建了一个 C++/WRL 项目,该项目具有一个接受流作为参数的函数,以便接收器写入器写入。该参数的类型是 Windows::Storage::Streams::FileRandomAccessStream。现在它给出的错误是命名空间 Windows::Storage 未知,当我包含头文件 windows.storage.h 时,错误是“使用未定义类型'ABI::Windows::Storage::Streams: :FileRandomAccessStream'"。

有谁知道问题是什么以及如何解决?

提前致谢!

罗纳德

0 投票
1 回答
3059 浏览

c++ - 在不引用 DLL/程序集的情况下加载 WinRT 组件

我一直在用 C++ 中的 C#、C++/CX 和 WRL 试验 WinRT 组件。到目前为止,我设法做了所有我尝试过的事情,即使与 COM 相比,有些东西已经改变,或者令人困惑或令人沮丧。

我正在尝试的最后一件事是 COM 的基本架构模式,但到目前为止我还做不到。我只是想创建一个 WRL 组件的实例,而不引用正在使用该组件的项目中的 DLL。据我所知,这是COM的基本行为,提供COM的CoClass的GUID,使用程序只知道接口,CoCreateInstance将动态加载COM并创建一个附加到您请求的接口的实例.

我找不到如何使用 WRL 做到这一点。我定义了几个简单的接口,我什至在注册表中都找不到它们。但是,由于 COM 可以在没有注册表的情况下使用对象并且现在有窗口元数据,我想这就是原因。

有人知道这是否不是对 WinRT 的限制(这将使其成为一个非常糟糕的架构......),或者如果有可能如何实现与 WRL 的后期绑定。

为了清楚起见,在调用程序中,我只想提供接口的信息(这可以是 .h),然后我需要能够使用其 GUID 或名字对象名称创建 WinRT 组件的实例。这是我在 C++/COM、C# 和 Java 中使用的架构模式,因为您可以编写应用程序并支持新功能,而无需触及应用程序的任何一行,甚至无需重新编译它。

谢谢 O. Rouit

0 投票
1 回答
451 浏览

visual-c++ - 创建从另一个(简单)继承的简单接口时出现错误 MIDL5004

我有以下非常简单的接口:

当我尝试为 WinRT 编译此 MIDL 时,我收到以下错误:

错误MIDL5004:接口必须从 IInspectable 继承:ICitizen

我真的很困惑在 WinRT 下 COM 变成了什么!如果从另一个接口继承这样简单的事情不再可能,我们如何设计应用程序?

我已经搜索了 WinRT 的 MIDL 的文档,但我找不到它!更好的是在谷歌上搜索错误 MIDL5004 没有显示任何结果!

Microsoft 的任何人都可以解释如何创建一个从另一个继承自 IInspectable 的接口继承的接口。在另一个测试中,我使用 C++/CX 创建了相同的接口,并且能够创建一个继承自 IPerson 的 ICitizen 接口。为什么 WinRT 的 MIDL 不再允许这样做,这是 COM 体系结构的基础,创建了接口层次结构。

感谢您的投入 O. Rouit

0 投票
1 回答
557 浏览

c++ - Visual Studio 2012 不存在 mfplatf.lib

我想举个例子 http://msdn.microsoft.com/en-us/library/vstudio/jj872764.aspx 当我编译库 c++ 时,我看到错误:错误 LNK1104:无法打开文件 'mfplatf.lib' 在哪里我能找到吗?

0 投票
1 回答
671 浏览

matlab - 如何翻转 VRML 文件 (.wrl),或在 Matlab 中翻转 VR 模型

我在 .wrl 文件(3 兆字节)中有一个相当复杂的假肢右手 VRML 模型,我正在 Matlab 中操作(根据命令制作动画)。我想制作文件的镜像(水平翻转)(成为左手)。我不介意我是否使用免费程序来处理文件(我想这应该只涉及镜像所有水平坐标)或者是否有可以翻转 VR 模型的 Matlab 命令,但我无法找到解决方案。“世界”中没有其他东西,因此文件中的所有内容都可以翻转。

文件中有命名变换,我需要它们保留它们的名称,因为这些关节会被动画化,但如果我必须更改旋转的符号以使物体沿正确的镜像方向移动,这不是问题。

我只是在寻找一个简单而免费的解决方案。

谢谢!

0 投票
1 回答
728 浏览

xml-parsing - X3D 居中的视点

谁能帮我计算 X3D 对象的旋转中心和位置?我注意到 InstantReality 的 aopt 工具添加了以下内容:

结果很好,对象被适当地缩放,居中并且旋转中心以某种方式完美地“在”对象“内部”(x,y,z,中心)。我必须避免使用 aopt,我怎样才能获得它,(即通过 JavaScript)pheraphs 循环通过 XML 坐标点并进行一些计算......?我正在使用 X3DOM 来渲染对象。

非常感谢。