首页 > 编程语言 >C# Dx截图初始化报错“SharpDX.SharpDXException: HRESULT: [0x80070057], Module: [General], ApiCode: [E_INVALID

C# Dx截图初始化报错“SharpDX.SharpDXException: HRESULT: [0x80070057], Module: [General], ApiCode: [E_INVALID

时间:2023-10-08 11:24:42浏览次数:57  
标签:初始化 截图 C# Invalid QueryInterface 报错 Dx DuplicateOutput output

最近发现Dx截图创建输出设备时output.QueryInterface<Output1>().DuplicateOutput

报错:“SharpDX.SharpDXException: HRESULT: [0x80070057], Module: [General], ApiCode: [E_INVALIDARG/Invalid Arguments], Message: 参数错误。

经过验证,如果一个进程多次创建输出设备(多次调用output.QueryInterface<Output1>().DuplicateOutput)则会抛以上异常。

但是检查了一遍所有代码,并没有第二处地方调用output.QueryInterface<Output1>().DuplicateOutput。

经过排除,最终发现是WebRtc.Net调用了InitializePeerConnection初始化客户端之后,Dx截图创建输出设备时output.QueryInterface<Output1>().DuplicateOutput就会抛出以上异常。

由于WebRtc.Net内部也有截图功能,应该是也创建了输出设备。

所以如果使用Dx截图,则初始化要在WebRtc初始化客户端之前,并且每次初始化Dx,都要先确保WebRtc已释放。

标签:初始化,截图,C#,Invalid,QueryInterface,报错,Dx,DuplicateOutput,output
From: https://www.cnblogs.com/log9527blog/p/17748436.html

相关文章

  • C# Model 自定义检验
    使Model实现IValidatableObject接口并重写Validate方法即可publicclassAuditIPKeepRecordApply_In:IValidatableObject{///<summary>///IP备案申请表主键id///</summary>[Required(ErrorMessage="IP备案申请表主键id不可为空"......
  • spring学习三:IoC概述
    IOC:控制反转,它并不是一种技术而是一种设计思想,是一个重要的面向对象编程法则,能够知道我们如何设计出松耦合,更优良的程序。 Spring通过IOC容器来管理所有java对象的实例化和初始化,控制对象与对象之间的依赖关系,我们将由IOC容器管理的java对象称为SpringBean,它与使用关键字new创......
  • npm install 报 cb.apply is not a function 错误
    npminstall报cb.applyisnotafunction错误1、问题来源.当我执行npminstall命令时,出现cb.applyisnotafunction错误!.由此可知,可能是npm和node版本不匹配。解决方案更换版本.node与npm版本对应表.参考资料node版本对应的npm版本表.解决npm......
  • 在vscode中使用Git
    由于一些新同学在进实验室之前没有接触过Git,所以在此做一些简单的介绍和总结,帮助快速上手。1Git是什么在Git的官网中有这么一段话Gitisafreeandopensourcedistributedversioncontrolsystemdesignedtohandleeverythingfromsmalltoverylargeprojectswith......
  • Maven 引用CDH 5.4 的zookeeper时报错:Could not find artifact javax.jms:jms:jar:1.1
    错误:Couldnotfindartifactjavax.jms:jms:jar:1.1incloudera由于默认5.4.0的包引用了zookeeper3.3.1版本,进而引用了log4j的某个版本,导致的报错,改为如下即可: pom:使用cloudera的源:<repositories><repository><id>cloudera</id><u......
  • .Net7自定义GC垃圾回收器
    1.前言CLR和GC高度耦合,.Net7里面分离CLR和GC,则比较容易实现这件事情。本篇来看下,自定义一个GC垃圾回收器。2.概述这里首先演示下自定义GC垃圾回收后的效果。1.下载Custom.dll2.找到当前.Net目录,比如这里的7.0.10C:\ProgramFiles\dotnet\shared\Microsoft.NETCore.App\7.0.1......
  • Docker安装报错处理
    一、安装Docker报错公钥尚未安装              【解决办法】:     1、查看系统版本信息cat/etc/redhat-release                  2、从开源镜像站mirrors.163.com找到系统对应秘钥       ......
  • 论文阅读:A Lightweight Knowledge Graph Embedding Framework for Efficient Inferenc
    ABSTRACT现存的KGE方法无法适用于大规模的图(由于存储和推理效率的限制)作者提出了一种LightKG框架:自动的推断出码本codebooks和码字codewords,为每个实体生成合适的embedding。同时,框架中包含残差模块来实现码本的多样性,并且包含连续函数来近似的实现码字的选择。为更好的提升K......
  • CUDA C编程权威指南:2.1-CUDA编程模型
      本文主要通过例子介绍了CUDA异构编程模型,需要说明的是Grid、Block和Thread都是逻辑结构,不是物理结构。实现例子代码参考文献[2],只需要把相应章节对应的CMakeLists.txt文件拷贝到CMake项目根目录下面即可运行。1.Grid、Block和Thread间的关系  GPU中最重要的2种内存是全局......
  • VS下的Emmet技巧(HTML Coding 效率Kit)
    tag:技巧点VSCode的EmmetAbbreviation参考参考参考2生成4行p标签p*4   E.class E#id E[attr=foo] E{foo} E>N E+N E^N......