什么是设备丢失

D3D中设备(Device)有两种状态,一种是可操作状态,也就是正常状态,另一种是丢失状态(Lost),处于丢失状态的设备是不能进行渲染操作的。简单的说,设备丢失是只应用程序(Device)与显卡失去了联系,因此无法使用显存。这里的Device不是只硬件,而是我们在程序中创建的Device对象,可以理解为上下文环境。

什么情况会导致设备丢失

当某些事件发生时,设备会由正常状态转换到丢失状态。这些事件包括

  • 程序在全屏状态下失去键盘焦点(全屏时按下Alt+Tab或Win+D键或Win+L键)
  • 其他程序进入全屏状态
  • 电源管理事件,比如屏保等

设备丢失的现象

  • 渲染窗口内模型丢失
  • 渲染窗口背景色变黑或者干脆没有背景色
  • 程序失去响应或者Crash

如何检测设备丢失

设备丢失以后,大多数渲染操作都只是silent failure,所以仍然会返回正确代码,但是Present函数会返回D3DERR_DEVICELOST,所以可以检测该函数的返回值,如果该函数失败,那么就重置设备。当然失败可能还有其他原因,不仅仅是设备丢失而已,这些情况我们都在ResetDevie函数里面一并处理。

// Present the back buffer contents to the display
HRESULT hr = g_pd3dDevice->Present(NULL, NULL, NULL, NULL);// Render failed, try to reset device
if(FAILED(hr))
{ResetDevice(d3dpp) ;
}

如何处理设备丢失

设备丢失以后,应该进行重置(Reset),可以使用Reset函数来重置设备,Reset函数是设备丢失以后唯一起作用的函数,也是唯一能将设备从丢失状态恢复到正常状态的函数。由于设备丢失后,设备与显卡就失去了联系,所以一切与显卡有关的资源也都无法再通过设备访问了,那么这些资源必须释放并重新创建,一般来说,以D3DPOOL_DEFAULT为参数创建的资源,都是在显卡中分配的内存,所以,在重置设备之前要保证所有D3DPOOL_DEFAULT类型的资源都必须释放掉,而且如果程序中使用了额外的SwapChain,那么也要重新创建之,否则Reset函数会失败。设备丢失的处理可以大致分成如下三个步骤

  1. 使用TestCooperativeLevel函数检测当前设备状态,如果可以重置,则重置,并重建使用D3DPOOL_DEFAULT创建的资源及SwapChain。
  2. 如果设备仍然处于丢失状态,则等待一段时间
  3. 如果是其他状态,比如驱动内部错误,则告知用户(比如显示错误框)

处理设备丢失的代码如下

// Reset device
HRESULT ResetDevice(D3DPRESENT_PARAMETERS d3dpp)
{// Check device stateHRESULT hr = g_pd3dDevice->TestCooperativeLevel() ;// Device can be reset nowif (SUCCEEDED(hr) || hr == D3DERR_DEVICENOTRESET){// Release resource allocated as D3DPOOL_DEFAULT// Reset deviceHRESULT hr = g_pd3dDevice->Reset(&d3dpp) ;if (SUCCEEDED(hr)){ResizeD3DScene(d3dpp.BackBufferWidth, d3dpp.BackBufferHeight) ;}else// Reset device failed, show error box
        {const WCHAR* errorString = DXGetErrorString(hr) ;DXTRACE_ERR_MSGBOX(errorString, hr) ;}}// Device is still in lost state, waitelseif (hr == D3DERR_DEVICELOST){Sleep(25) ;}else// Other error, Show error box
    {const WCHAR* errorString = DXGetErrorString(hr) ;DXTRACE_ERR_MSGBOX(errorString, hr) ;}return hr ;
}

需要注意的是,在重置Device的过程中(即调用Reset函数时),仍然会发生错误,这时我们简单的输出一个错误框告知用户。由于重置设备后,窗口的大小可能改变,所以我们要调用ResizeD3DScene来调整投影窗口的纵横比,该函数如下

// Reset the scene by rebuild the viewing frustum
void ResizeD3DScene(int width, int height)
{if (height ==0 ) // Prevent A Divide By Zero Byheight =1; // Making Height Equal One// Compute aspect ratiofloat fAspectRatio = width / (FLOAT)height;// Setup Projection matrixg_Camera.SetProjParams( D3DX_PI/4, fAspectRatio, 1.0f, 1000.0f );g_Camera.SetWindow( width, height );
}

验证一个3D程序是否正确处理了设备丢失

如果不能正确的处理设备丢失,则D3D程序经常会产生莫名其妙的现象 ,我们可以使用如下方法验证

1 在程序处于渲染状态时(窗口或者全屏态皆可)按下锁屏键(Win+L),然后返回程序,看看渲染内容是否丢失。

2 在程序处于全屏状态时,按下Win+D回到桌面,或者按下Atl+Tab切换到其他程序,然后在再到渲染程序,看看渲染内容是否丢失。

3 还有其他的,大家发挥想象力。。。

Vista及后续系统的情况

前面讨论的情况都是针对XP系统而言,如果你使用的是Window Vista及更高版本,那么情况则有所不同了,Vista使用的是WDDM driver(Windows Device Driver Model),而XP使用的是XPDM (XP Driver Model),前面说了,设备丢失的情况很多,并没有一个完整的列表来描述这些情况,但是在Vista系统上则不然,设备丢失只有两种情况,一是硬件hanging,另一种是driver stopped。

  • 如果是硬件挂起,那么可以通过ResetEx来重置设备,但是纹理内存会丢失。
  • 如果是驱动停止了,那么所有IDirect9Ex 对象必须重新创建以便继续渲染。

在窗口模式下,如果渲染区域被其他窗口遮挡,或者全屏模式下,程序最小化,PresentEx函数都会返回S_D3DPRESENTATIONOCCLUDED,全屏程序在收到WM_ACTIVATEAPP消息时会继续渲染。

在以前版本的DX中,当应用程序经历模式改变时,唯一的恢复办法就是reset device并重新创建所有显存资源及swap chain,但是在Vista上的DirectX,在模式改变后调用reset函数,纹理内存不会丢失,纹理渲染状态信息也不会丢失,这些资源都不必重新创建了。

D3D中设备丢失的处理

相关文章

  1. 静态路由的配置

    项目目标 (1)熟悉直连路由概念及建立要点。 (2)熟悉路由决策原则。 (3)掌握静态路由的配置方法 工作任务 某公司在北京、上海分贝有一个公司,北京是总公司,上海是分公司。两公司的网…...

    2023/3/28 17:06:33
  2. wireshark分析ICMP数据包

    1、理解ICMP数据包的内容 (1)类型:8位字段,ICMP报文类型 (2)代码:8位字段,记录发送特定类型的ICMP报文的原因 (3)检验和:16位字段 &#xff0…...

    2023/3/28 17:06:32
  3. java basic

    注:本文源代码点此下载 error:exception in thread "main" java.long.no classdef found error 1、你的文件名对吗? java要求你的文件和你的类名严格对应的。 比如 public class helloworld{ ..... 那么文件名一定只能是helloworld.java! 2、你的程…...

    2023/3/28 17:06:32
  4. C语言中scanf()常见的错误

    1、scanf("%d\n",&a) ,scanf()中不允许使用换行 2、scanf(%7.2f,&a),scanf()中不允许控制精度 3、scanf("%d",a),scanf()忘记加取d地址运算符 4scanf("a%d",&a),scanf的一般格式 scanf(格式控制字符串,参数地址表)&am…...

    2023/3/28 17:06:30
  5. 用HTML,CSS和JavaScript创建iPhone/iPad应用程序

    注:本文源代码点此下载 全屏幕:(去掉浏览器的地址栏和按钮栏); 防止窗口滚动和缩放; 响应多点触摸和手势事件; 使用webkit的css得到的iphone os的外观和感觉; 高速缓存的应用程序,因此它不上网运行; 在主屏幕上的一个自定义图标; 加一个启动画面。 如果你想更…...

    2023/3/28 17:06:30
  6. C语言大写字母转小写字母

    #include <stdio.h> int main(int argc, const char * argv[]) { char ch; printf("press a key and then press enter"); chgetchar(); //getchar()是C语言函数库中专门用于输入字符的函数&#xff0c;它没有参数&#xff0c;函数的返回值就是从终端键盘中…...

    2023/3/28 17:06:29
  7. Java程序以后台方式在Linux上运行(nohup命令)

    注&#xff1a;本文源代码点此下载 一、预备 命令 :nohup java cn.aofeng.loopapplication >loop.log & 说明: 1)将cn.aofeng.loopapplication设置成后台运行,并且将标准输出的日志重定向至文件loop.log。 2)nohup 表示不挂断运行,&表示以后台方式运行。 源代…...

    2023/3/28 17:06:29
  8. 解除绑定事件elem.onclik=null;div.removeEventListener()

    //解除绑定事件 1.elem.oncliknull; var divdocument.getElementsByTagName(div)[0]; div.addEventListener(click,fn,false); function fn(){ } 2.div.removeEventListener(click,fn(这里是函数的引用地址&#xff0c;如果写function(){}匿名函数的话&#xff0c;解除函数就找…...

    2023/3/28 17:06:29
  9. 第三讲:将CSS引用到HTML页面的4种方法

    注&#xff1a;本文源代码点此下载 序:老班一直提到html是结构,css是样式。先有结构,再有样式。就像房子一样,先有房子,才能装修。那如何将css和html代码联系起来呢? 这章《css引用》就是来解决这个问题。这里介绍4种将css引用到html页面的方法。 1、行内式引用 2、内嵌式引…...

    2023/3/28 17:06:28
  10. 轮播图 j s

    var nowIndex 0,w $(.wrapper).width(),len $(.item).length,//5flag true,//给点击加锁&#xff0c;只有当当前的图片滑动完事后才能被点击&#xff1b;slider_timer undefined; function init() {bindEvent();slider_auto(); } init(); function bindEvent() {$(.preBtn…...

    2023/3/28 17:06:27
  11. 在.net平台上运行伪JAVA

    注&#xff1a;本文源代码点此下载 由于在一个项目局方要求使用java平台, 而当前又都是.net平台的应用. 重新用java开发工作量太大. 时间也来不及. 想到在.net中有url rewrite功能, 何不先"骗"过去再说, 反正只要不上服务器, 不看网页源代码, 估计要发现不太容易, 特…...

    2023/3/28 17:06:27
  12. C语言单分支语句比较两个数的最大值

    #include <stdio.h> int main(int argc, const char * argv[]) { int a,b,max; printf("input a b:\n"); scanf("%d",&a); scanf("%d",&b); if(a>b) maxa; if(a<b) maxb; printf("max%d\n",max); } 运行结果&am…...

    2023/3/28 17:06:27
  13. JavaScript 渐变效果

    注&#xff1a;本文源代码点此下载 javascript 渐变效果 程序集合了宽度、高度、透明度、top、left的渐变,可以自定义渐变项目和各个项目的初始值结束值,还能以任意点(定点)为中心渐变。 使用该程序能实现很多常见的动画特效,包括大小变换、位置变换、渐显渐隐等等。 效果: …...

    2023/3/28 17:06:25
  14. C语言计算器问题

    #include <stdio.h> int main(int argc, const char * argv[]) { int data1,data2; char op; printf("input an expression:\n"); scanf("%d%c%d",&data1,&op,&data2); //输入运算表达式 switch(op) //根据输入的运算符确定执行的程序…...

    2023/3/28 17:06:25
  15. 艾伟:Ajax基石脚本异步并发调用参数传递

    注&#xff1a;本文源代码点此下载 艾伟,曾网名叫狼人,湖北佬,目前定居上海徐汇,典型的it软件土鳖一个,现别名“扯蛋的程序员”。 3年以上专注电子商城开发经验,研究过行业内70%的b2c网络商城系统的架构,从用户体验到业务与程序关系的转化再到服务器的布署负载均衡等,均熟知其…...

    2023/3/28 17:06:24
  16. Python请求报错由于连接方在一段时间后没有正确答复或连接的主机没有反应-解决方法

    第一步 &#xff1a;打开设置 第二步&#xff1a;取消勾选的“在工具串口中显示绘图”...

    2023/3/28 17:06:24
  17. Eclipse 3.6 jee failed to create the java virtual machine

    注&#xff1a;本文源代码点此下载 刷新评论列表刷新页面返回页首 发表评论 昵称: [登录] [注册] 主页: 邮箱:(仅博主可见) 验证码:看不清。 换一个 评论内容: 记住我的昵称和主页 --> 登录注册 [使用ctrlenter键快速提交评论] 0 2061049 qkg5dyjygp0…...

    2023/3/28 17:06:22
  18. 深度拷贝

    //深度拷贝 //考虑引用值 var obj{ name:"abc", age:123, sex:"F" card:[visa,[1,2]] } var obj1{ } //遍历对象 function deepClone(target, origin) {var targettarget||{};//容错处理以防如果外部没有传入的空对象&#xff0c;就自己创建一个新的空对象…...

    2023/3/28 17:06:22
  19. IE 10 预览: HTML5先睹为快

    注&#xff1a;本文源代码点此下载 《ie10 preview: html5 first look》 作者:michael mullany 译者:sp42/zhangxin09 http://www.sencha.com/blog/ie10-preview-html5-first-look/ 在过去的一年里,我们已经把 html5 技术簇的每一环,都置于各款主流手机、平板中进行一连串的…...

    2023/3/28 17:06:21
  20. 事件处理函数 解决this对象问题 handle.call(elem)

    function addEvent(handle,type,elem){//事件函数&#xff0c;事件对象&#xff0c;事件类型 if(elem.addEventListener){ elem.addEventListener(type,handle,false); }else if(elem.attachEvent){ elem.attachEvent(ontype,function(){ handle.call(elem);//该函数默认的this…...

    2023/3/28 17:06:21
  21. 转载 Java中类C/C++的sizeof()操作,知晓实例大小

    注&#xff1a;本文源代码点此下载 在c/c中有sizeof()操作,可轻易获知某个类型或实例占用内存大小,sizeof(int) 或者 sizeof(new testclass)。可是java中可没有这么直观的方法可用。 因本人看过不少人写代码总爱写成 list userlist new arraylist();//注:声明时即初始化一个…...

    2023/3/28 17:06:20
  22. Win10下Windows徽标键键盘快捷键大全

    本文列举Win10下可用的Windows徽标键快捷键&#xff0c;供大家参考&#xff1a; • Win A&#xff1a;打开操作中心&#xff1b; • Win B&#xff1a;将焦点转移到任务栏通知区域&#xff0c;之后你可以通过左右方向键选择项目&#xff0c;按回车打开&#xff1b; • Win…...

    2023/3/28 17:06:20
  23. 请问html标签中,object标签的用法?

    注&#xff1a;本文源代码点此下载 html标签 定义和用法 定义一个嵌入的对象。请使用此元素向您的 xhtml 页面添加多媒体。此元素允许您规定插入 html 文档中的对象的数据和参数,以及可用来显示和操作数据的代码。 标签用于包含对象,比如图像、音频、视频、java applets、ac…...

    2023/3/28 17:06:19
  24. 数据结构中的elem,elemtype是什么

    elem是单词element&#xff08;元素&#xff09;的缩写&#xff0c;在程序定义中代表某一不确定的类型&#xff0c;也就是抽象的数据类型。 为了使程序可读性强&#xff0c;并且便于修改&#xff0c;让elem代表多种的数据类型&#xff0c;也就是为int、char等等的数据类型&…...

    2023/3/28 17:06:18
  25. firefox对ajax的URL中文编码产生乱码完美解决

    注&#xff1a;本文源代码点此下载 博客园 闪存 首页 新随笔 联系 管理 订阅 随笔- 675 文章- 0 评论- 62 firefox对ajax的url中文编码产生乱码完美解决 firefox对ajax中文编码产生乱码完美解决,测试ie7,firefox,google chrome正常。 对象:ajax传值url里有中文 如:…...

    2023/3/28 17:06:18
  26. matlab 中randn randi rand randerr、randint、randsrc、wgn函数

    1&#xff0c;rand 生成均匀分布的伪随机数。分布在&#xff08;0~1&#xff09;之间 主要语法&#xff1a;rand(m,n)生成m行n列的均匀分布的伪随机数 rand(m,n,‘double’)生成指定精度的均匀分布的伪随机数&#xff0c;参数还可以 是’single’ rand(RandStream,m,n)利用指定…...

    2023/3/28 17:06:17
  27. 我爱 Delphi

    注&#xff1a;本文源代码点此下载 学了这么多年的计算机,用过了无数种语言,最终还是觉得delphi好!正如爱上我老婆以后,再漂亮的女孩看着也没感觉。 “到底什么使得delphi如此优秀?” 1.几乎完美的面向对象语言和技术。 2.完善的数据处理能力。 3.对标准技术的完整支持。 …...

    2023/3/28 17:06:17
  28. 取消冒泡 event.stopPropagation()

    //点击事件&#xff0c;就算子元素没绑定点击事件&#xff0c;父元素有绑定&#xff0c;当点击子元素的时候&#xff0c;也同样会出现冒泡事件&#xff0c; //取消冒泡事件 //事件对象&#xff0c;每个事件处理函数里面可让系统传一个事件对象给该函数,事件对象上有个方法取…...

    2023/3/28 17:06:17
  29. matlab某数组中产生不重复随机数,数组的随机排序,randperm函数numel,X=X(A)函数

    例如&#xff1a;A[1,4,5,8,14,15]&#xff0c;从数组A中产生3个不重复的随机数。&#xff08;当然也可以从A1:n个数中产生几个不重复随机数&#xff09;或者&#xff08;将数组随机排序&#xff09;。此过程需要利用randperm函数。 1.randperm函数 y randperm(n)&#xff0c;…...

    2023/3/28 17:06:16
  30. 点击事件小练习 还有闭包问题解决

    <ul> <li>a</li> <li>b</li> <li>c</li> </ul> <script> // 1.div.οnclickfunction(){console.log("a");}//只能给一个对象绑定一个事件处理函数 // 2.div.addEventListener(click,fucntion(){//这里是函数地…...

    2023/3/28 17:06:16

最新文章

  1. 使用 Flash Builder 的 Apple iOS 开发过程

    使用 Flash Builder 的 Apple iOS 开发过程 iOS 开发和部署过程概述 构建、调试或部署 iOS 应用程序前的准备工作 在测试、调试或安装 iOS 应用程序时选择的文件 将应用程序部署到 Apple App Store 时选择的文件 在使用 Flash Builder 开发 iOS 应用程序之前&#xff0c;必须…...

    2023/3/16 19:40:03
  2. exchange日常管理之九:升级SP1后的灾难恢复

    将exchange 2007升级到了exchange 2010&#xff0c;但是没有打最新的SP1补丁和累积更新&#xff0c;没想到这补丁一打就出问题了&#xff0c;汗了一把啊。 升级过程摘要 1、在前端服务器和后端服务器上安装microsoft office filter pack 2.0 2、停掉后端的beremote备份进程 3…...

    2023/3/16 17:29:51
  3. iOS开发 - js oc相互调用

    2019独角兽企业重金招聘Python工程师标准>>> 首先导入 JavaScriptCore.framework 框架 #import <UIKit/UIKit.h> #import <Foundation/Foundation.h> #import <JavaScriptCore/JavaScriptCore.h>protocol ServerJSProtocol <JSExport>// 微…...

    2023/3/16 6:11:48
  4. git学习之创建版本库

    创建版本库 什么是版本库呢&#xff1f;版本库又名仓库&#xff0c;英文名repository&#xff0c;你可以简单理解成一个目录&#xff0c;这个目录里面的所有文件都可以被Git管理起来&#xff0c;每个文件的修改、删除&#xff0c;Git都能跟踪&#xff0c;以便任何时刻都可以追踪…...

    2023/3/16 5:38:29
  5. List集合中的数据按照某一个属性进行分组

    有的时候&#xff0c;我们需要在java中对集合中的数据进行分组运算。例如&#xff1a;Bill对象有money(float)和type(String)属性&#xff0c;现有个集合List<Bill>&#xff0c;需要按照Bill的type属性进行分组&#xff0c;计算money的总和。有以下两种思路&#xff1a; …...

    2023/3/18 2:30:34
  6. 游戏编程性能优化--------------------------------------------------------------------------------------...

    游戏编程性能优化------------------------------------------------------------------------------------------- 1.全局变量名尽量用缩写&#xff0c;尽可能短&#xff0c;可以减小程序最终生所的体积 2.for循环在较大的循环空间&#xff0c;写成几个循环&#xff0c;以利用…...

    2023/3/16 12:35:44
  7. 2017年软件工程作业-“Hello World!”团队互评beta版本

    A.欢迎来怼——博客园安卓APP&#xff08;测评人&#xff1a;刘淑霞&#xff09; 博客地址&#xff1a;http://www.cnblogs.com/liusx0303/p/7905928.html B.Thunder——爱阅app&#xff08;测评人&#xff1a;方铭&#xff09; 博客地址&#xff1a;http://www.cnblogs.com/…...

    2023/3/16 12:07:11
  8. ibatis 批量插入逻辑

    为什么80%的码农都做不了架构师&#xff1f;>>> ibatis oracle 批量插入配置 <!--批量新增--><insert id"CreateLawStatisticsClassifyBatch" parameterClass"ArrayList">insert into T_LAW_STATISTICS_CLASSIFY(ID,TEMPLATE,ALIA…...

    2023/3/16 5:39:32
  9. secureCRT免密码登陆Linux

    转自&#xff1a;http://blog.csdn.net/wangquannetwork/article/details/46062675 1.实现原理&#xff1a; 通过CRT生成的密钥对&#xff0c;把公钥上传到Linux服务器指定用户下的.ssh目录中&#xff0c;在客户端上只需输入秘钥的密码即可登陆&#xff0c;而且验证一次以后可以…...

    2023/3/16 11:10:31
  10. PP代码生成器(二) 解决方案, 生成任务, 辅助设计面板

    我们接着上一篇博客继续讨论如何使用PP生成代码. 首先, 我们介绍两个概念”解决方案”和 “生成任务”. 解决方案: 解决方案是一系列生成任务的集合. 它包含若干个生成任务.生成任务: 每个任务会关联一个freemarker模板, 最终会使用这个模板来生成一个结果文件解决方案和任务的…...

    2023/3/16 10:41:54
  11. 函数的运用二(一个一个字读,便于学会机率)

    看完前篇的函数运用是不是不在疑惑&#xff0c;那么下面就来点复杂一点的&#xff0c;也不难的。 如下图所示&#xff1a;读绿色和黄色注释。 是不是能写出来了&#xff0c;调用函数的方式&#xff0c;都是一样的。跟上面前篇的调用几乎一样的&#xff0c;不同就是函数名不同而…...

    2023/3/24 2:33:26
  12. 困扰你的Git操作?

    前端学习笔记篇之git那些事 Git是一款免费、开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。学习前端&#xff0c;离不开Git的使用&#xff0c;面试时也是一个常考的话题&#xff0c;在日常开发中&#xff0c;也困扰我们许久&#xff0c;下面就让…...

    2023/3/24 2:33:28
  13. ArrayList和LinkedList的区别

    2019独角兽企业重金招聘Python工程师标准>>> ArrayList和Vector使用了数组的实现&#xff0c;可以认为ArrayList或者Vector封装了对内部数组的操作&#xff0c;比如向数组中添加&#xff0c;删除&#xff0c;插入新的元素或者数据的扩展和重定向。 LinkedList使用了…...

    2023/3/16 17:29:27
  14. Winform开发框架之客户关系管理系统(CRM)的开发总结系列2-基于框架的开发过程...

    在上篇随笔《Winform开发框架之客户关系管理系统(CRM)的开发总结系列1-界面功能展示》中介绍了我的整个CRM系统的概貌&#xff0c;本篇继续本系列的文章&#xff0c;介绍如何基于我的《winform开发框架》的基础上进行CRM系统模块的开发工作&#xff0c;希望对大家在系统模块开发…...

    2023/3/16 5:37:14
  15. shell 日期加减运算

    比如今日是2012-04-22$ date -d "1 day" %Y-%m-%d2012-04-23$ date -d "-1 day" %Y-%m-%d2012-04-21$ date -d "2012-04-10 -1 day " %Y-%m-%d2012-04-09$ date -d "2012-04-10 1 day " %Y-%m-%d2012-04-11$ date -d "-1 week &q…...

    2023/3/15 19:12:30
  16. PHP 字符串替换 substr_replace 与 str_replace 函数

    PHP 字符串替换 用于从字符串中替换指定字符串。 相关函数如下&#xff1a; substr_replace()&#xff1a;把字符串的一部分替换为另一个字符串 str_replace()&#xff1a;使用一个字符串替换字符串中的另一些字符substr_replace() substr_replace() 函数用于把字符串的一部分替…...

    2023/3/16 12:34:47
  17. Android开发者指南(12) —— Android Supported Media Formats

    本文档描述了Android平台支持的媒体播放解码器、网络协议。 作为一名应用软件开发者&#xff0c;你可以自由使用平台上的媒体解码器&#xff0c;这些编解码可以是平台提供&#xff0c;或者是特定设备支持。然而&#xff0c;最好习惯于使用媒体编码配置信息使得应用软件代码编写…...

    2023/3/16 12:06:17
  18. Quartz.NET

    概述 Quartz.NET是一个开源的作业调度框架&#xff0c;非常适合在平时的工作中&#xff0c;定时轮询数据库同步&#xff0c;定时邮件通知&#xff0c;定时处理数据等。 Quartz.NET允许开发人员根据时间间隔&#xff08;或天&#xff09;来调度作业。它实现了作业和触发器的多对…...

    2023/3/16 11:38:32
  19. java算法-递归算法

    2019独角兽企业重金招聘Python工程师标准>>> 不废话直接上代码 public class maxtest {public static void main(String[] args) {//###################阶乘递归算法start###################//System.out.println(f(5));//###################阶乘递归算法start##…...

    2023/3/16 11:09:32
  20. Lifecycle-library-stable

    Google 最近发布了稳定Lifecyclelibrary。笔者认为&#xff1a;如果你正在使用alpha或者beta版本&#xff0c;以下内容可能对你有用。 Deprecated LifecycleActivity 在stable version 1.0.0 之前&#xff0c;LifeCycle Library 并没有实现 LifecycleOwner这个接口&#xff0c;…...

    2023/3/16 10:41:08
  21. 数据结构——哈希表

    前言 使用哈希表可以进行非常快速的查找操作。但是&#xff0c;哈希表究竟是什么玩意儿&#xff1f;很多人避而不谈&#xff0c;虽然知道经常用到&#xff0c;很多语言的内置数据结构像python中的字典&#xff0c;java中的HashMap&#xff0c;都是基于哈希表实现。但哈希表究竟…...

    2023/3/16 10:14:40
  22. Bootstrap~Panel和Table

    在我们对一个页面进行设计时&#xff0c;分块是必须的&#xff0c;没有一个网站是一栏而下的&#xff0c;除非你是在看小说&#xff0c;否则你的页面设计一定是分块的&#xff0c;即它由于多个panel组件&#xff0c;在bootstrap里叫到栅格系统&#xff0c;而在每行每列进行宏观…...

    2023/3/16 6:40:03
  23. pyspider操作千万级库,pyspider在对接量级较大库的策略

    pyspider操作千万级库&#xff0c;pyspider在对接量级较大库的策略 如果是需要pyspider正常的流程去执行&#xff0c;那必然是会在on_strat()时任务执行超时&#xff0c;可能只读取出几万条或十几万条数据就会被破终止&#xff0c;然后执行index_page()&#xff0c;由于这个超时…...

    2023/3/16 6:09:47
  24. Js+MVC~公用API的设计,返回jsonp后使ajax的error属性生效!

    相关知识说明 项目用公用的&#xff21;&#xff30;&#xff29;事实上就是其它子项目&#xff0c;包括非子项目需要从这个项目中得到一个公用的信息&#xff0c;这种产生信息的接口我们称为公用的&#xff21;&#xff30;&#xff29;(application program interface)&#…...

    2023/3/16 8:48:42
  25. 【CentOS 7笔记51】,screen虚拟终端#171207

    2019独角兽企业重金招聘Python工程师标准>>> hellopasswd screen工具 为了不让一个任务意外终端nohup command &screen是一个虚拟终端yum install -y screenscreen直接回车就进入了虚拟终端ctral a组合键再按d退出虚拟终端&#xff0c;但不是结束screen -ls查看…...

    2023/3/16 0:46:40
  26. 行内元素和块级元素(转)

    行内元素和块级元素 2013-01-05 11:40 by greenal, 88623 阅读, 3 评论, 收藏, 编辑 1 块级元素&#xff1a;div , p , form, ul, li , ol, dl, form, address, fieldset, hr, menu, table行内元素&#xff1a;span, strong, em, br, img , input, label…...

    2023/3/16 12:33:43
  27. 微信JSApi支付~坑和如何填坑

    微信一直用着不爽&#xff0c;这几天研究它的jsapi支付&#xff0c;即在微信内打开H5页面&#xff0c;完成支付的过程&#xff0c;在这个过程中&#xff0c;你将会遇到各种各样的问题&#xff0c;而大叔将把这些问题的解决方法写一下&#xff0c;希望可以给你带来帮助&#xff…...

    2023/3/16 12:05:20
  28. 阿里云ECS服务器Linux环境下配置php运行环境

    阿里云ECS服务器Linux环境安装配置PHP的运行环境&#xff0c;不同于window操作系统下配置&#xff0c;因为是linux操作系统主要是在命令窗体里输入命令来操作&#xff0c;对于初次接触过linux系统的可能会有点怕怕的&#xff0c;下不去手。。。。。。 需要安装的软件有Apacheph…...

    2023/3/16 0:45:51
  29. vim文本编辑器和yum的搭建

    rpm -ivh 软件名-版本信息-.rpm &#xff08;安装软件&#xff09; rpm -q 软件名 (查看软件是否安装) rpm -e 软件名 &#xff08;卸载转件&#xff09; 因为rpm有依赖关系而yum刚好解决此问题 使用vim创建/修改文本文件 vim文本编辑器 命…...

    2023/3/16 13:02:32
  30. sql developer 连接oracle错误一例(ORA-12505)

    Oracle安装于VM中用sql developer连接oracle报ORA-12505再三检查lsnrctl status&#xff0c;不得正常后来再发现是oracle instance没有启动。转载于:https://blog.51cto.com/9882derek/2049088...

    2023/3/16 13:02:32