如何使用 ComPtr 中包装的 Direct3D 11 指针来获取 11.1 接口?

2024-03-21

我正在遵循教程,并将通常的初始化转换为使用 ComPtrs 直到这一行:

ID3D11Device*           g_pd3dDevice = nullptr;
ID3D11Device1*          g_pd3dDevice1 = nullptr;
// Obtain the Direct3D 11.1 versions if available
hr = g_pd3dDevice->QueryInterface( __uuidof( ID3D11Device1 ), reinterpret_cast<void**>( &g_pd3dDevice1 ) );

这是我期望的直接模拟:

Microsoft::WRL::ComPtr<ID3D11Device>    device = nullptr;
Microsoft::WRL::ComPtr<ID3D11Device1>   device1 = nullptr;
// Obtain the Direct3D 11.1 versions if available
hr = device->QueryInterface(__uuidof(ID3D11Device1), reinterpret_cast<ID3D11Device1**>(&device1));

有许多编译器和智能感知警告(对我来说真的很神秘)。它不喜欢强制转换,也不喜欢我使用 QueryInterface() 的方式。

我应该做什么?

Errors:

Error   1   error C2440: 'reinterpret_cast' : cannot convert from 'Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::ComPtr<ID3D11Device1>>' to 'ID3D11Device1 **'
Error   2   error C2660: 'Microsoft::WRL::Details::RemoveIUnknownBase<T>::QueryInterface' : function does not take 1 arguments

智能感知警告(可能有帮助吗?):

18  IntelliSense: function "Microsoft::WRL::Details::RemoveIUnknownBase<T>::QueryInterface [with T=ID3D11Device]" (declared at line 64 of "C:\Program Files (x86)\Windows Kits\8.1\Include\winrt\wrl/client.h") is inaccessible

使用时ComPtr,你应该使用::As方法而不是QueryInterface。例如,hr = device.As(&device1);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 ComPtr 中包装的 Direct3D 11 指针来获取 11.1 接口? 的相关文章

  • 类型转换 sockaddr 结构

    我正在尝试学习网络编程 并在这个过程中学习C 我对结构感到困惑sockaddr这是一个通用地址 并且sockaddr in 我的书里是这么说的 因此 我们可以填写 sockaddr in 的字段 然后强制转换 a 指向 它指向 指向 soc
  • 如何使用movntdqa避免缓存污染?

    我正在尝试编写一个 memcpy 函数 该函数不会将源内存加载到 CPU 缓存中 目的是避免缓存污染 下面的 memcpy 函数可以工作 但会像标准 memcpy 一样污染缓存 我正在使用带有 Visual C 2008 Express 的
  • 线程安全的get(访问器方法)

    我目前正在使用以下代码对变量进行线程安全访问 int gnVariable void getVariableValue int pnValue acquireLock Acquires the protection mechanism pn
  • 如何捕获正在播放的音频?

    有谁知道如何以编程方式捕获正在播放的声音 即来自声卡的所有声音 而不是麦克风等输入设备 假设您正在谈论 Windows 则基本上可以通过三种方法来实现此目的 首先是打开音频设备的主输出作为录音源 这只有在驱动程序支持时才可能实现 尽管现在大
  • 多个源文件中包含包含“const”的头文件

    Why does not包含定义的头文件const并被多个源文件包含会产生编译错误multiple definition const in header file h const int num 5 int x Error Multiple
  • 无法使用 Unity 函数在 Visual Studio Code 中获得完整的 Intellisense

    好吧 我知道这个问题已经被问过并回答过很多次了 但我花了大约 3 天的时间试图解决这个问题 但到目前为止我所做的一切都没有奏效 我基本上在 Visual Studio Code 中有部分智能感知 也就是说 它似乎只识别 Unity 类和变量
  • 已安装全局 NPM 包但未找到命令

    我已经全局安装了两个 npm 包 下载 https www npmjs com package download and 谜虚拟盒 https www npmjs com package enigmavirtualbox通过命令行 npm
  • 尝试将元素推入向量

    在头文件 我没有编写 中 已经定义了一个结构体 如下所示 struct MemoryMessage public boost counted base public FastAlloc explicit MemoryMessage Memo
  • 在 C 程序中追踪数组越界访问/写入的推荐方法

    考虑用 C 语言编写一些不太明显的算法的实现 例如 让它成为递归快速排序 我在 K N King 的 C 编程 现代方法 第二版 书中找到了它 可以从here http knking com books c2 programs qsort
  • 使用 Thread.Sleep() 时,异步编程如何与线程一起工作?

    假设 前言 在之前的问题中 我们注意到Thread Sleep阻塞线程参见 什么时候使用Task Delay 什么时候使用Thread Sleep https stackoverflow com questions 20082221 whe
  • 是否可以用 C# 为 Android 编写应用程序?

    我们都知道Android运行Dalvik VM程序 通常开发人员用 Java 编写程序并将其编译为 Dalvik 字节码 我想知道是否有可能创建一个可以接受 C 代码并将其编译为 Dalvik 字节码的编译器 嗯 这是一种选择 或者您可以在
  • 使用经度和纬度查找给定距离内的所有附近客户

    我有一个包含客户经度和纬度的数据库 我有一个搜索表单 用户将在其中输入日志 纬度 距离下拉列表包含 50 英里 100 英里 当用户单击搜索时 我想编写一个 linq 查询从数据库中获取此距离半径内的所有客户 如何使用 C 和 linq 来
  • Xamarin 无法从异步获取实例

    我编写了一个通过蓝牙连接到 ESP32 的 Xamarin Forms 应用程序 现在我想从 MainPage xaml 页面的 CustomControl JoystickControl 获取值 我已经这样尝试过了 MainPage xa
  • 标准头文件中的 C 编译器错误 - 未定义的 C++ 定义

    我正在尝试编译 C 程序 但收到许多错误 这些错误是在标准 C 头文件 inttypes h stdio h stat h 等 中遇到的 错误的来源是以下未定义的常量 BEGIN DECLS END DECLS BEGIN NAMESPAC
  • Windows“findstr”命令:排除包含特定字符串的结果

    到命令findstr str1 我想添加一些内容来排除包含该字符串的结果str2 在Linux中 这样做的方法是添加 grep v str2 to grep str1 当然 是否有一个等效的标志 v在 Windows 中 是否有一个等效的标
  • Yield Return == IEnumerable 和 IEnumerator 吗?

    Is yield return实施的捷径IEnumerable and IEnumerator 是的 您可以在我的书 C in Depth 的第 6 章中找到更多相关信息 幸好第六章是免费提供 http www manning source
  • 什么是多重重继承?

    我将以下称为 多重重新继承 直接继承一个类一次 并通过继承其一个或多个后代来间接继承一次或多次 通过继承一个类的两个或多个后代来间接继承一个类两次或多次 我想知道它是否存在以及如何明确访问嵌入的子对象 1 Professional C 2n
  • 组合框由于某种原因被链接

    我有以下代码来填充 3 个组合框 private void PopulateDDLs SqlConnection connection SqlCommand command SqlDataReader reader DataTable dt
  • 如何并排显示 4 个三角形图案

    我无法让 4 个不同的三角形图案并排出现 这是一个控制台应用程序 这正是我试图通过使用嵌套 for 循环来实现的目标
  • C++20 范围太多 |运营商?

    我在这段代码中使用 g 10 2 有谁知道为什么我最后收到编译器错误std views reverse on results3 include

随机推荐

  • Ruby on Rails 中的“分配”有什么作用?

    我目前正在尝试学习Ruby on Rails和测试框架RSpec 什么是assigns在这个 RSpec 测试中做什么 describe GET index do it assigns all mymodel as mymodel do m
  • 线程中的临界区是什么?

    请有人能举例简单地告诉我临界区的含义是什么 用简单的语言 A 临界区 http en wikipedia org wiki Critical section是需要在没有外部干扰的情况下执行的代码部分 即没有其他线程可能影响该部分内的 中间
  • TypeScript 中的私有静态属性

    如果我执行下面类似的操作 如何从类中访问该属性 class Person private static name string console log Person name 不是应该无法访问吗 这应该是一个错误 但事实并非如此 根据规范第
  • 如何创建分支?

    如何在SVN中创建分支 使用创建一个新分支svn copy命令如下 svn copy svn ssh host example com repos project trunk svn ssh host example com repos p
  • 派生类中类模板的部分特化会影响基类

    我有一个元功能 struct METAFUNCION template
  • 在 WooCommerce 管理订单列表中添加自定义操作按钮

    我已关注本说明 https fernandoacosta net blog 2015 06 07 woocommerce adicionar novo status de pedido 为我的 WooCommerce 订单添加自定义订单状态
  • 如何修复应用程序构造函数中的异常

    我是 Javafx 新手 我刚刚下载了 JDK 12 并遵循了教程 它已经工作但对我不起作用 我正在使用模块来要求 javafx controls 这是代码 在我的主课中 我在SOFlow中尝试了很多解决方案但没有结果 我尝试了 1 将 p
  • 在 C# 中序列化和存储对象的最简单方法?

    我正在寻找一个简单的解决方案来序列化和存储包含配置 应用程序状态和数据的对象 它是一个简单的应用程序 数据不多 速度不是问题 我希望它正在进行中 我希望它在文本编辑器中比在 xml 中更容易编辑 我找不到任何可以在进程中处理它的 net 文
  • 如何使用Beautifulsoup4等待网站返回数据

    我使用 beautifulsoup4 编写了一个脚本 该脚本基本上从网页上的表格中获取密码列表 问题是我的 python 脚本不会等待网页返回的内容 并且会中断或显示 列表索引超出范围 代码如下 ssl lab url https www
  • 谷歌 reCaptcha V3 中的“浏览器错误”(不可见)

    我正在使用 google reCaptcha v3 不可见 但我收到了一些响应负载 success false error codes browser error 我用谷歌搜索但没有找到任何有关 浏览器错误 的信息 从 7900 个 reC
  • npm、pip、pipenv 和 Poetry 包管理器之间的功能比较 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 主要特点是怎样的npm与之比较pip pipenv and Poetry https python poetry org 包管理器 我
  • 记录 ServiceStack Web 服务 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 用于记录基于 ServiceStack 的 Web 服务的选项有哪些 我不是在谈论单行字符串 我希望能够详细记录 可能很长 返回类型
  • 定义 CreateProjection 和 CreateMap

    在我的项目中 我使用实体框架进行 ORM 使用 Dto 类进行 api 响应 我使用 Automapper 在两者之间进行映射 当我需要直接从 EF 可查询中获取 Dtos 时 我会执行最后的操作ProjectTo lt gt 根据我的查询
  • 将 ggplot 标题放置在绘图的右上角

    我正在使用优秀的theme minimal 在 ggplot0 9 3 中找到 它具有白色背景 我想将绘图的标题放置在绘图右上角的自定义位置 在下面的例子中我知道x and y值 但我想知道是否有办法通过xmax and ymax值以确保文
  • 迭代Go地图获取索引

    为了使用revel s even https revel github io manual templates html even模板中的关键字我想在迭代时获取地图条目的索引range 有什么办法可以做到吗 我的地图具有以下结构 map s
  • dequeueReusableCellWithReuseIdentifier: 和 cellForItemAtIndexPath: 之间的区别

    我一直想知道为什么我的代码可以很好地工作cellForItemAtIndexPath 不与dequeueReusableCellWithReuseIdentifier 在获取集合视图单元格时 这是我的代码 这个效果很好 NSInteger
  • 为连续序列和分割向量创建分组变量

    我有一个向量 例如c 1 3 4 5 9 10 17 29 30 我想将形成规则 连续序列的 相邻 元素分组在一起 即在参差不齐的向量中增加 1 结果是 L1 1L2 3 4 5L3 9 10 L4 17L5 29 30 天真的代码 前 C
  • 如何确定 Qt 5 中的 QtWebEngine 在运行时使用的是哪个 chromium 版本?

    我在 Qt 5 中找不到任何函数来确定使用哪个 chromium 版本QtWebEngine 我不想在代码中硬编码 chromium 版本 因为我经常更新我的应用程序 并且每个版本中的 chromium 版本通常都会更改 而且 Qt 是向后
  • 目录相对 ZwCreateFile

    我必须为我的大学项目实施交叉视图文件完整性检查器 为此 我如何在内核模式下列出目录的文件 你的起点是ZwCreateFile http msdn microsoft com en us library windows hardware ff
  • 如何使用 ComPtr 中包装的 Direct3D 11 指针来获取 11.1 接口?

    我正在遵循教程 并将通常的初始化转换为使用 ComPtrs 直到这一行 ID3D11Device g pd3dDevice nullptr ID3D11Device1 g pd3dDevice1 nullptr Obtain the Dir