directx 订阅
DirectX(Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口,是一种应用程序接口(API)。DirectX可以让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3D图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。DirectX已被广泛使用于Microsoft Windows、Microsoft XBOX、Microsoft XBOX 360和Microsoft XBOX ONE电子游戏开发。 [1-2] 展开全文
DirectX(Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口,是一种应用程序接口(API)。DirectX可以让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3D图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。DirectX已被广泛使用于Microsoft Windows、Microsoft XBOX、Microsoft XBOX 360和Microsoft XBOX ONE电子游戏开发。 [1-2]
信息
应    用
Microsoft Windows
外文名
Direct eXtension
最新版本
DirectX 12
简    称
DX
中文名
DirectX
性    质
多媒体编程接口
发行公司
微软公司
DirectX功能介绍
Microsoft DirectX 是这样一组技术:它们旨在使基于Windows 的计算机成为运行和显示具有丰富多媒体元素(例如全色图形、视频、3D 动画和丰富音频)的应用程序的理想平台。DirectX 包括安全和性能更新程序,以及许多涵盖所有技术的新功能。应用程序可以通过使用DirectX API 来访问这些新功能。功用DirectX加强3D图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低了用户安装及设置硬件的复杂度。从字面意义上说,Direct就是直接的意思,而后边的X则代表了很多的意思,从这一点上可以看出DirectX的出现就是为了为众多软件提供直接服务的。举例来说,以前在DOS下骨灰级玩家玩游戏时,并不是安装上就可以玩了,他们往往首先要设置声卡的品牌和型号,然后还要设置IRQ(中断)、I/O(输入与输出)、DMA(存取模式),如果哪项设置的不对,那么游戏声音就发不出来。这部分的设置不仅让玩家伤透脑筋,对游戏开发者来说就更为头痛。为了让游戏能够在众多电脑中正确运行,开发者必须在游戏制作之初,把市面上所有声卡硬件数据都收集过来,然后根据不同的 API(应用编程接口)来写不同的驱动程序。这对于游戏制作公司来说,是很难完成的,所以在当时多媒体游戏很少。微软正是看到了这个问题,为众厂家推出了一个共同的应用程序接口——DirectX。只要游戏是依照Directx来开发的,不管显卡、声卡型号如何,统统都能玩,而且还能发挥最佳的效果。当然,前提是使用的显卡、声卡的驱动程序必须支持DirectX才行。 [3] 
收起全文
精华内容
参与话题
问答
  • 新手入门之DirectX入门

    千次阅读 2016-01-27 18:00:06
    今天我们要接触到令人敬畏的DirectX。它比Windows GDI要快好几倍,可用于不同的语言和多种平台,支持从绘制象素到高级3D图象,从播放简单声音到数字音乐,从键盘控制到反震手柄……它给你游戏编程所需的一切(有点...

    ☆ 简介

    今天我们要接触到令人敬畏的DirectX。它比Windows GDI要快好几倍,可用于不同的语言和多种平台,支持从绘制象素到高级3D图象,从播放简单声音到数字音乐,从键盘控制到反震手柄……它给你游戏编程所需的一切(有点夸张)。当然了,它是巨大的,需要好几本书才能含盖它的全部。先不要去担心我在这里所教给你之外的数不清的知识,毕竟我把你推到了起跑线上。

    阅读本章,你需要前几章的知识和C语言的知识,由于我们还要谈到组件对象模型(COM),它是面向对象系统的基础,你最好还要有一点儿C++的知识。没有也不太要紧,我在讲到这处时会照顾你的。反正你记住,使用DirectX并不需要多少C++的知识。开始吧!

    ☆ 什么是DirectX?

    DirectX是游戏制作者的API(Application Development Interface)。它是一组允许你直接控制计算机硬件设备的软件。如果你的硬件支持DirectX,并且你用硬件加速你的程序,这就意味着一个字——快。不用担心你的硬件知识,你不会真正的接触到它们。我们是通过硬件抽象层(HAL)和硬件仿真层(HEL)来保证设备无关性和让你的程序正常运行。

    DirectX由很多组件构成,每一个都有特定的用途。组件DirectDraw是最为重要的一个,因为所有的图形都要用到它,它是2D图形的引擎,3D图形也同样离不开它。DirectDraw是我们今天就要说的。其它的组件是:

    ▲ DirectSound:提供硬件和软件的声音混合与回放。

    ▲ DirectMusic:处理基于消息的音乐数据。它支持乐器数字接口(MIDI)并为创建交互式音乐提供创作工具。

    ▲ DirectPlay:使得通过调制解调器链接或通过网络来与应用程序相连成为可能。

    ▲ Direct3D:是一个三维图形包,它提供一个高级的保留模式(Retained Mode)接口,这使得你能够实现一个完整的三维图形系统。它还包含一个低级的即时模式(Immediate Mode)接口,使得应用程序获得对渲染管线的完全控制。

    ▲ DirectInput:为包括游戏杆、鼠标、键盘和游戏控制器在内的输入设备提供支持。它还为反馈游戏设备提供支持。

    ▲ DirectSetup:为DirectX提供了一个简单的安装过程。它简化了更新显示和音频驱动程序的过程,并且确保没有硬件或软件冲突的存在。

    ▲ AutoPlay:让你能够制作一张一旦插入驱动器就能自动安装的光盘。AutoPlay并非DirectX所独有,因为它是Microsoft Win32 API的一部分。

    组件对象模型(COM)是DirectX的基础,有一些技巧建立COM对象——别问我怎么做——但你知道一点点还是有好处的。我只是简单说一下,如果你有兴趣,具体的细节就自己查资料吧!可能下一节你有些困惑,但不要紧,我所说的你不用太明白,毕竟我们的目的是使用COM对象,这可比创建容易多了。

    ☆ 组件对象模型(COM)

    COM接口是DirectX技术的基础,没有COM就没有DirectX。(不用担心,你只需要对COM技术有一个粗浅的了解就可以使用DirectX——只要你在编写DirectX应用程序时遵循一定的步骤,甚至都可以在不了解COM的情况下使用DirectX。

    DirectX的大多数API都是基于COM结构的。COM为软件模块化和软件重用提供了最坚实的基础,它的最重要的概念就是接口(interface),接口是软件重用的最基本方法。更专业的说,接口是一系列操作的规范描述,即接口规范。

    所有的COM接口都是从Iunknown接口继承而来的,IUnknown接口是所有COM接口的根。IUnknown接口具有3个方法:

    · QueryInterface():此方法查询新接口,并在新接口存在时返回之。

    · AddRef():此方法在接口或其它应用程序连编到此COM对象上时将引用计数值递加1。

    · Release():此方法将COM对象的引用计数递减1。当引用计数递减到0时,该COM对象自动释放。

    所有COM对象都具有这三个方法。虽然DirectX应用程序一般不需要考虑引用计数的问题,但引用计数确实是存在的,它已经由DirectX自动完成了。我们所要做的,就是创建DirectX对象,然后在使用完毕后调用Release方法释放引用。

    ☆ 设置

    用DirectX创建程序,你需要有三件主要的事要做。第一件事是COM对象本身,它们包含在.DLL文件里,这些.DLL文件需要在Windows里注册,这在安装DirectX软件包时已经完成了。这些对象是我们创建DirectX应用程序时用到的接口,例如IdirectDraw。但这还不够,因为在COM层上直接使用DirectX是令人沮丧的和乏味的。我们希望有更容易的办法解决它。利用静态库(.LIB文件)是个好办法,它是DirectX软件包的一部分,你可以从Microsoft免费获得。它有一个“打包”函数使你工作更轻松。使用DirectX的不同组件,你需要链接不同的静态库。例如你要使用DirectDraw组件,你就需要ddraw.lib。

    最后,你还需要DrectX头文件,它包含函数原形、宏、常量和你需要用到的各种类型。对于DirectDraw,这个头文件是ddraw.h。

    要确认你使用了正确的文件版本,你还得让编译器包含软件开发包的目录。具体的做法是:

    首先点击Tool菜单,选择Options,然后点击Directories,在Show Directories for 组合框下拉菜单中选择Include files,增加一个新的目录。将你的DirectX的路径填入。(例如:C:DXSDKinclude)然后将它移到列表的第一位,使编译时第一个寻找它(防止寻找老版本)。然后选择Show Directories for组合框下拉菜单中的Library files,方法同前,只是把include改成lib。现在,你已经设置完了DirectX。你仍然需要手动增加一些库文件到你的项目中,但先不急,我将在以后讲它。我们将使用DirectX 7.0。

    ☆ DirectX版本号

    你可能认为版本号没有什么好讲的,但我们确实要说一说。Microsoft在DirectX里创建了令人难以置信的科技,但它并不代表不使人迷惑。对于每一个DirectX版本,并不是所有的接口都一次次的升级。因此,尽管DirectX有了7个版本(我写文章时DirectX8.0正准备发布),但DirectDraw并没有7个版本。当DirectX6是最新版本时,DirectDraw的最新接口版本是IDirectDraw4,不是IDirectDraw6。现在最新的版本是DirectX7,所以我们要用IDrectDraw7。很奇怪,是不是?我想你已经明白了我的意思,请不用因为以后看到的感到困惑了。

    最后一件事。当我写这篇文章时,DirectX7是最新的可用版本,但或许现在你已经有了DirectX8,并且或许你还听说了,DirectDraw将不再升级了,取代它的是DirectX Graphics,这是一个功能强大的图形API。但DirectDraw不升级就意味着我们不学习它了,毕竟都离不开COM。如果你想用DirectX8的接口写2D的游戏,你需要用3D方法去创建2D观点。听起来很棒,是的,的确如此,因为使用3D接口将给你更多的硬件支持,例如阿尔发混合。但这也恰恰是个问题,如果机器没有相应的硬件设备,程序会以更慢的速度运行。

    DirectDraw是很容易学的。由于DirectX中的3D图形是基于DirectDraw的,3D应用程序在DirectDraw环境中执行;极少有应用程序专门使用3D。大多数程序使用3D函数对一些对象建模,而另一些对象,诸如背景和精灵,是以2D图形渲染的。所以本系列将使用DirectDraw。关于DirectX8,我还没有太多的了解,因此我只能对DirecX7做详细介绍。总的来说,你使用DirectX,还是离不开DirectDraw的。

    ☆ DirectDraw概述

    在你的程序中使用DirectDraw,你至少要做四件事,它们是:

    1、建立一个DirectDraw对象。

    2、设置协作等级。

    3、设置显示模式和色彩深度(全屏模式)。

    4、至少创建一个DirectDraw表面。

    在讲怎样完成以上步骤之前,先让我们了解一下每一步的含义。第一个,要创建一个DirectDraw对象,这意味着我们要建立一个指向IDirectDraw7接口的指针。这很简单,不是吗?有三种办法可以实现它,你可以直接使用COM,或使用DirectDraw的两个函数之一。三种办法各有千秋,我们过一会儿将详细介绍。第二个,设置操作等级。这可能对你来说比较新鲜。协作是由于Windows是一个多任务操作系统而产生的概念。意思是所有运行的程序都要随时告知Windows它们将要或正在使用的资源,这将保证你所要使用的资源不会被windows再分配给别的应用程序。不用担心,有一个很简单的函数完成它。

    第三个你是否有点熟悉?如果你要写一个全屏的程序,通常是游戏程序,你需要设置显示模式和色彩深度。在Windows的应用程序里做这些通常不是一个好主意,因为它能导致其它程序的同时运行出现问题。当你结束自己的程序时,你当然要恢复到改变前的状态。设置全屏模式,只是调用一个单独的DirectDraw的函数,程序结束后,要恢复原来的状态。

    最后,也是最重要的,是DirectDraw表面的概念。操纵表面是DirectDraw的全部。简单的说,DirectDraw表面是一个用于存储图象数据的线性内存区域。DirectDraw表面的大小就是以象素为单位,用宽和高来定义。所以你可以认为表面是一个用来画图的矩形区域。它有自己的接口,称作IDirectDrawSurface7。有三种主要的表面,我们将在本章和下一章分别用到它们。

    · 主表面:每一个DirectDraw应用程序都有一个主表面。主表面就相当于用户的显示器。它的内容是可见的。同理,主表面就是根据显示器的显示模式设定宽和高。

    · 后缓冲区:后缓冲区是紧随主表面的表面,但它不可见。它是动画没有闪烁的主因,通常,你在后缓冲区画好每一帧,然后把后缓冲区的内容拷贝到主表面,使它显示出来。由于它紧随着主表面,所以它的大小同主表面相同。(你就理解为楼上和楼下的关系)

    · 离屏缓冲区:它很象后缓冲区,只是它不是紧挨着主表面。尽管你可以用它作任何事,但它经常被用来存储位图。离屏缓冲区你可以任意设置大小,唯一的限制是你内存的大小。

    DirectDraw表面可以在系统内存中建立,或直接建立在显示内存中。如果你都建立在显示内存中,速度效果将是最好的,如在系统内存就要慢一些了。如果你把一个表面存储在显示内存中,另一个在系统内存中,性能会有一些损失的,尤其是显示卡与主板之间有一个令人恶心的带宽。总之,如果能把表面都建立在显示内存中,你或许应该尽力做到。

    OK,我们总算有了一点儿认知,让我们看看具体怎么做吧!这儿有一个计划,我们将建立一个全屏模式下,16位色彩,640×480分辨率的程序,我将告诉你全部你需要做的。但开始前,你需要对Windows编程有一点了解。想必你看过了前面几章,应该对创建窗口已经熟悉了。由于这是一个全屏的程序,你不需要任何地窗口控制,所以你的窗口风格应该用WS_POUP|WS_VISIBLE。弄好了吗?All right,出发吧!

    ☆ 建立DIRECTDRAW对象

    象我前面说过的,有三种方法。我们可以用两个DIRECTDRAW函数中的任何一个,或者直接调用COM对象。让我们每一个都试试,使我们自己熟悉它们。我将告诉你的最后一个方法可能是目前为止最简单的,可能你会喜欢用它。至于另外两个,打眼儿一看,你会觉得有些奇怪。首先,看看DirectDrawCreate():

    HRESULT WINAPI DirectDrawCreate(

    GUID FAR *lpGUID,

    LPDIRECTDRAW FAR *lplpDD,

    IUnknown FAR *pUnkOuter

    );

    看起来是不是有点儿复杂?HRESULT返回的类型是DirectDraw函数的标准。如果成功,返回值是DD_OK。如果失败,函数将返回一个错误常量,有几个错误常量供选择,但我不想细讲,更不想列出这些常量,反正你可以通过帮助文件随时查阅它们。但有一件事儿我得告诉你,有两个非常有用的宏可以帮助你知道函数调用成功与否:SUCCEEDED()和FAILED()。从字面上你就知道它们的分工了,是不是?只要把函数放到宏里面,你就知道结果了。无论如何,我们还得看看函数的参数:

    · GUID FAR *lpGUID:是一个全局唯一标识符(GUID)的地址,代表将要创建的驱动程序。如果该参数是NULL,那么该调用指向当前的显示驱动程序。新版本的DirectDraw允许向该参数传递下列两种标志之一,以控制当前显示的行为:

    ◎ DDCREATE_EMULATIONONLY:DirectDraw只使用仿真(HEL),不使用硬件支持特性。

    ◎ DDCREATE_HARDWAREONLY:DirectDraw对象不使用仿真特性。只能使用硬件抽象层(HAL),如果硬件不能支持应用程序,将不再寻求硬件仿真层(HEL)的支持而返回错误信号。

    · LPDIRECTDRAW FAR *lplpDD:表示如果调用成功则返回有效的DirectDraw对象指针的地址,它是DirectDraw对象指针的指针(“DD”表示DirectDraw,“lp”表示32位长指针,“lplp”表示长指针的长指针)。应用程序一般需要使用此指针的地址(即DirectDraw对象指针)初始化DirectDraw对象。

    · IUnknown FAR *pUnkOuter:这是为高级COM应用保留的参数,设置为NULL好了。

    不要被我罗里罗嗦的解释吓倒,实际应用起来很简单,解释这么多,不过是为了让你明白根本道理。现在有一个问题,这个函数给你一个指向IDirectDraw接口的指针,但我们想要一个指向IDirectDraw7接口的指针,我们应该怎么做呢?一旦DirectDraw应用程序通过DirectDrawCreate()函数获得了指向DirectDraw对象的指针,COM就有一种机制可以用来查看该对象是否支持其它接口。IUnknown的QueryInterface()方法使得你能够确定一个对象是否支持一个特定的接口:

    HRESULT QueryInterface(

    REFIID iid, // Identifier of the requested interface

    void **ppvObject // Address of output variable that receives the

    );

    第一个参数是一个要查询的对象的引用标识符。对于IDirectDraw7来说就是IID_IDirectDraw7。使用它,你必须把dxguid.lib链接入你的项目中;第二个参数是一个变量的地址,我们应该在程序的头部先声明一个LPDIRECTDRAW7类型的指针,再把指针的地址传递给这个参数。如果你使用的是Visual C++6.0,你在这儿或许还需要一个类型强制符。如果机器支持你指定的接口,函数将返回一个指向该接口的指针。通过该指针,代码就获得对新接口的方法的访问。如果函数调用成功,返回值是S_OK。

    现在我们有了两个接口指针:一个是IDirectDraw接口,另一个是IDirectDraw7。后一个是我们想要的;前一个就没有用了。我们注意,在代码中每当找到一个新的有效对象时,前一个对象就通过Release()函数被释放掉。这个函数很简单:

    ULONG Release(void);

    返回的值是一个参考数字,只有在程序测试和调试时才用得着这个数字。为了安全起见,你还应该把释放了的指针赋值为NULL。我们也通常在声明这样的指针时设置它为NULL。你跟上我的节奏了吗?可能要记忆的东西太多了,但是你不得不记忆。让我们把谈到的这些做个实例吧,实例的目的是得到IDirectDraw7接口的指针:

    复制代码
    LPDIRECTDRAW lpdd = NULL; // pointer to IDirectDraw (temporary)
    
    LPDIRECTDRAW7 lpdd7 = NULL; // pointer to IDirectDraw7 (what we want)
    
    // get the IDirectDraw interface pointer
    
    if (FAILED(DirectDrawCreate(NULL, &lpdd, NULL)))
    
    {
    
    // error-handling code here
    
    }
    
    // query for IDirectDraw7 pointer
    
    if (FAILED(lpdd->QueryInterface(IID_IDirectDraw7, (void**)&lpdd7)))
    
    {
    
    // error-handling code here
    
    }
    
    else
    
    {
    
    // success! release IDirectDraw since we don't need it anymore
    
        lpdd->Release();
    
        lpdd = NULL;
    
    }
    复制代码

    现在,如果你是一个C程序员,你可能被调用QueryInterface()和Release()这两个函数的方法弄得有点模糊。你以前可能看过“->”这个符号,在C语言的结构部分,当结构声明了一个指针变量,调用结构成员时,就用“结构指针名->结构成员”,同样的道理,只是这里把结构成员换成了函数。既然说到这个话题,我就介绍一下另一个C++符号,范围定义符号“::”,它是表示从属关系的符号,举个例子你就明白了:比如QueryInterface()函数是属于IUnknown类的,就可以表示为IUnknown::QueryInterface()。我们将来会经常用到这个符号的,所以记住它。

    说实在的,以上的主要目的是为了演示怎样使用QueryInterface()方法,它是所有DirectX接口的一部分,所以让我们往下进行。我们将直接使用COM方法获得接口指针。这种方法的好处是你可以立即获得IDirectDraw7接口指针,不用象刚才那么麻烦。首先,你必须得初始化COM,象这样:

    HRESULT CoInitialize(LPVOID pvReserved);

    不能在容易了,你必须把参数设置为NULL。当你结束COM调用,你需要抛弃它,也很简单:

    void CoUninitialize(void);

    我通常在DirecX程序的一开始就调用CoInitialize()函数,在程序的最末端,当我释放了所有的DirectX对象后,使用CoUninitialize()。一旦你初始化了COM,你就可以用CoCreateInterface()函数得到你想要的指针,它看起来有点丑陋:

    复制代码
    STDAPI CoCreateInstance(
    
    REFCLSID rclsid, // Class identifier (CLSID) of the object
    
    LPUNKNOWN pUnkOuter, // Pointer to whether object is or isn't part
    
    // of an aggregate
    
    DWORD dwClsContext, // Context for running executable code
    
    REFIID riid, // Reference to the identifier of the interface
    
    LPVOID *ppv // Address of output variable that receives
    
    ); // the interface pointer requested in riid
    复制代码

    如果成功,返回值是S_OK。参数需要好好解释一下,看下面:

    · REFCLSID rclsid:这是一个类标识符(不要同GUID搞混了哦),有为它准备好的常量标识符供你选择。对于IDirectDraw7来说,使用CLSID_DirectDraw。注意没有版本号,因为它是类标识符,不是接口标识符。

    · LPUNKNOWN pUnkOuter:这个同我们在DirectDrawCreate()中看到的一样,设置为NULL。

    · DWORD dwClsContext:这个必需的值叫作执行上下文,它定义了控制新生成对象的代码将要执行的方式。这个值可以从CLSCTX列表中选取,对于我们现在的情况,我们用CLSCTX_ALL,它包含了所有可能的值。

    · REIID riid:我们在QueryInterface()中看过它。这个IID是IID_DirectDraw7。

    · LPVOID *ppv:依然同DirectDrawCreate()中的一样,是指向接口指针的地址。

    调用这个函数将取代我们上一个方法中的DirectDrawCreate()、QueryInterface()和Release()三个函数,所以简捷一些。当然,使用哪种随便你了。直接调用COM比我们先前用的方法少了一个多于地接口指针。一旦你用CoCreateInstance()建立了一个对象,你还得调用Initialize()函数初始化这个对象。在C++里可能写成这样IDirectDraw7::Initialize()。以下是它的原形:

    HRESULT Initialize(GUID FAR *lpGUID);

    将使用同DirectDrawCreate()中一样的GUID,就是NULL。在我们继续前,让我给你看一个使用COM创建DirectDraw对象的例子:

    复制代码
    LPDIRECTDRAW7 lpdd7; // interface pointer
    
    // initialize COM
    
    CoInitialize(NULL);
    
    // create the object
    
    CoCreateInstance(CLSID_DirectDraw, NULL, CLSCTX_ALL, IID_IDirectDraw7, (void**)&lpdd7);
    
    // initialize the object
    
    lpdd7->Initialize(NULL);
    复制代码

      直接看例子可能使你更容易理解一些。好了,建立DirectDraw对象的最难的两种方法你已经学会了,那就让我们看看最简单的方法吧! 它只有一步,没有多于的接口指针,不用设置COM,什么都没有。就是下面这个函数:

    DirectDrawCreateEx(

    GUID FAR *lpGuid,

    LPVOID *lplpDD,

    REFIID iid,

    IUnknown FAR *pUnkOuter

    );

    所有的参数我们看起来都比较熟悉,因为我们刚才看过它们了。第一个,第二个和第四个参数同DirectDrawCreate()中的一样,只是这里需要用(void**)来修饰一下我们接口指针的地址——别问我为什么,这不是我的主意。第三个参数,riid,是我们在函数CoCreateInstance()中传递的接口ID,所以我们就用IID_IDirectDraw7。就这样,无论用哪种方法,我们得到了我们的DirectDraw对象,我们可以继续使用这个对象了。要做的头两件事是设置协作等级和显示协议。

    ☆ 设置协作等级和显示模式

    我不需要说太多。Windows编程设置协作级别你只需要调用IDirectDraw7::SetCooperativeLevel()函数;设置显示模式你就调用IDirectDraw7::SetDisplayMode()函数。就这么简单!先来看看协作级别。这就是函数原形:

    HRESULT SetCooperativeLevel(

    HWND hWnd,

    DWORD dwFlags

    );

    返回的类型是HRESULT,你应该已经熟悉它了。对于所有的DirectX函数调用,你都可以用SUCCEEDED()和FAILED()宏检测调用的结果。以下是函数SetCooperativeLevel()的参数:

    · HWND hWnd:很熟悉吧!传递主窗口的句柄给它,使Windows知道谁将使用它的资源。

    · DWORD dwFlags:这个也很眼熟吧!每次我们看到dwFlags参数,几乎都有一个大的标志常量列表供我们选择,并且可以用“|”组合。这次也不会让你失望的哦!

    ◎ DDSCL_ALLOWMODEX:启用Mode X 显示模式(如320×200,320×240或者320×400)。该标志只能用于DDSCL_EXCLUSIVE和DDSCL_FULLSCREEN模式。

    ◎ DDSCL_ALLOWREBOOT:在独占模式中启用Ctrl+Alt+Del组合键功能。

    ◎ DDSCL_EXCLUSIVE:请求独占模式,必须与DDSCL_FULLSCREEN同时使用。

    ◎ DDSCL_FULLSCREEN:独占模式的拥有者负责整个主表面,GDI被忽略,必须与DDSCL_EXCLUSIVE同时使用。

    ◎ DDSCL_NORMAL:表示常规的Windows应用程序,不能与DDSCL_ALLOWMODEX、DDSCL_EXCLUSEIVE或DDSCL_FULLSCREEN标志同时使用,在该模式下运行的应用程序不能进行页交换或者更改主调色板。

    ◎ DDSCL_NOWINDOWCHANGES:防止DirectDraw最小化或恢复应用程序窗口。

    还有几个标志常量我们暂时用不到,就不说了。由于我们要建立一个全屏的640×480×16的显示模式,所以我们得这样设置:

    lpdd7->SetCooperativeLevel(hwnd, DDSCL_ALLOWREBOOT | DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);

    现在协作级别已经设置好了,让我们再看看改变显示模式的函数:

    HRESULT SetDisplayMode(

    DWORD dwWidth,

    DWORD dwHeight,

    DWORD dwBPP,

    DWORD dwRefreshRate,

    DWORD dwFlags

    );

    别忘了用宏去检测调用函数的成功或失败!大多数的参数同你料想的差不多:

    · DWORD dwWidth,dwHeight:以象素为单位,新显示模式的尺寸。

    · DWORD dwBPP:新显示模式的色彩深度。就是每一个象素有多少位字节。可以设置为8,16,24或32。警告:很多显示卡不支持24-bits。

    · DWORD dwRefreshRate:屏幕的刷新频率。但你最好设置为0,使用默认的刷新频率。

    · DWORD dwFlags:对不起,这次没有列表了^_^,唯一的选择是DDSDM_STANDARDVGAMODE,它把显示模式设置为0x13(DOS程序员的好朋友),取代了Mode X的320×200×8的模式。如果你还想使用其它的模式(你可能经常需要),没有问题,把它设置为0好了。

    这些就是显示模式的设置,事先最好了解你的显示卡支持的显示模式,它们通常都支持640×480,800×600,1024×768等等,这些都是标准的模式。但是如果你非得设置成542×366的模式,你可能就会得到错误的反馈。科技在发展吗,什么都是可能的。让我们继续吧!

    ☆ 创建表面

    这一次,我们需要比调用一个函数多一点点的东东。创建表面不是很难的,实际上,也是由一个单独的函数完成的,但是首先你要填充一个描述你所要创建的表面的结构。给你看这个结构之前,我只想告诉你,你不必填满所有的成员。^_^这就是它,DDSURFACEDESC2:

    复制代码
    typedef struct _DDSURFACEDESC2 {
    
    DWORD dwSize;
    
    DWORD dwFlags;
    
    DWORD dwHeight;
    
    DWORD dwWidth;
    
    union
    
    {
    
    LONG lPitch;
    
    DWORD dwLinearSize;
    
    } DUMMYUNIONNAMEN(1);
    
    DWORD dwBackBufferCount;
    
    union
    
    {
    
    DWORD dwMipMapCount;
    
    DWORD dwRefreshRate;
    
    } DUMMYUNIONNAMEN(2);
    
    DWORD dwAlphaBitDepth;
    
    DWORD dwReserved;
    
    LPVOID lpSurface;
    
    DDCOLORKEY ddckCKDestOverlay;
    
    DDCOLORKEY ddckCKDestBlt;
    
    DDCOLORKEY ddckCKSrcOverlay;
    
    DDCOLORKEY ddckCKSrcBlt;
    
    DDPIXELFORMAT ddpfPixelFormat;
    
    DDSCAPS2 ddsCaps;
    
    DWORD dwTextureStage;
    
    } DDSURFACEDESC2, FAR *LPDDSURFACEDESC2;
    复制代码

    坦率的说,编写DirectDraw的应用程序其实并不难。但是事情往往是这样,80%的工作只需要我们花费20%的时间就可以完成,而剩下的20%的工作却需要我们花费80%的时间来完成。DirectDraw编程比这还要严重,就笔者的看法,至少90%的工作只需要我们不到10%的时间来完成,而剩下的不到10%的工作却至少需要我们90%的时间!结构DDSURFACEDESC就是10%的一部分,它较为复杂,它嵌套了其它的结构。让我们看看这个怪物到底做了什么。我只说说重点的部分:

    · DWORD dwSize:任何DirectX结构都有dwSize这个成员,表示结构的大小。有了它,当函数接收到指向这些结构的指针时,就可以测定结构的大小了。

    · DWORD dwFlags:太好了,又有一大堆标志常量了^_^ !这些标志告诉接收函数哪些数据成员是有效的。要想使需要的数据成员有效,就必须传递相对应的标志常量给dwFlags,你当然可以用“|”组合它们。以下是列表:

    ◎ DDSD_ALL:所有的数据成员都有效。

    ◎ DDSD_ALPHABITDEPTH:表示数据成员dwAlphaBitDepth有效。

    ◎ DDSD_BACKBUFFERCOUNT:表示数据成员dwBackBufferCount有效。

    ◎ DDSD_CAPS:表示数据成员ddsCaps有效。

    ◎ DDSD_CKDESTBLT:表示数据成员ddckCKDestBlt有效。

    ◎ DDSD_CKDESTOVERLAY:表示数据成员ddckCKDestOverlay有效。

    ◎ DDSD_CKSRCBLT:表示数据成员ddckCKSrcBlt有效。

    ◎ DDSD_CKSRCOVERLAY:表示数据成员ddckCKSrcOverlay有效。

    ◎ DDSD_HEIGHT:表示数据成员dwHeight有效。

    ◎ DDSD_LINEARSIZE:表示数据成员dwLinearSize有效。

    ◎ DDSD_LPSURFACE:表示数据成员lpSurface有效。

    ◎ DDSD_MIPMAPCOUNT:表示数据成员dwMipMapCount有效。

    ◎ DDSD_PITCH:表示数据成员lPitch有效。

    ◎ DDSD_PIXELFORMAT:表示数据成员ddpfPixelFormat有效。

    ◎ DDSD_REFRESHRATE:表示数据成员dwRefreshRate有效。

    ◎ DDSD_TEXTURESTAGE:表示数据成员dwTextureStage有效。

    ◎ DDSD_WIDTH:表示数据成员dwWidth有效。

    · DWORD dwheight,dwWidth:表示要创建表面的尺寸。以象素为单位。

    · LONG lPitch:这个需要好好解释一下。lPitch表示从画面一行行首数据到下一行行首数据的距离,以字节为单位。例如,640×480×16,每一行有640个象素,每个象素需要两个字节装颜色的信息,所以pitch应该是1280个字节,对不对?可能有一些显示卡要多于1280,这每行多于的内存没有装置任何的图形数据,但是防备有些显示卡不能在线性内存模式显示图形,你还是把多于地放在那吧。这种情况很少发生,但你最好还是考虑在内。

    · LPVOID lpSurface:指向表面内存开始地址的指针。不管你使用什么显示模式,你都可以用DirectDraw创建的线性地址模式操作表面象素。要想这样,你必须锁住表面,但这已经超出我们现在所学的了。

    · DWORD dwBackBufferCount:后缓冲区的数目。以后我们会在提到它。

    · DWORD ddckCKDestBlt,ddckCKSrcBlt:前者为描述位转换操作的目标颜色值,后者是源颜色值。我们将在以后的文章中具体介绍。

    · DDPIXELFORMAT ddpfPixelFormat:这个结构包含了描述显示模式的象素格式标识符。以后会具体介绍,现在就不多说了。

    · DDSCAPS2 ddsCaps:这是最后一个重要的结构。它是一个充满控制标志的结构。感谢菩萨,这是一个小结构,结构成员中只有一个很重要。让我们看一看:

    typedef struct _DDSCAPS2{

    DWORD dwCaps;

    DWORD dwCaps2;

    DWORD dwCaps3;

    DWORD dwCaps4;

    } DDSCAPS2, FAR* LPDDSCAPS2;

    最重要的就是dwCaps了。第三个和第四个成员从来没有用过,是为将来准备的。总之,dwCaps可以使用如下的值,当然可以用“|”组合。以下是最为常用的,其它的你若有兴趣,自己查好了。

    · DDSCAPS_BACKBUFFER:指出这个表面是需要表面切换结构的后缓冲区。

    · DDSCAPS_COMPLEX:是一个复杂表面,由主表面,一个或多个粘贴表面组成,通常是为了页面切换。

    · DDSCAPS_FLIP:指出这个表面是表面切换结构的一部分。前缓冲区紧跟着一个或多个建立好的后缓冲区。

    · DDSCAPS_FRONTBUFFER:是关于表面切换结构的前缓冲区。

    · DDSCAPS_LOCALVIDMEM:指出在true、local video memory【不知怎么翻译】中建立表面。如果使用该标志,必须也同时使用DDSCAPS_VIDEOMEMORY标志,但不能同DDSCAPS_NONLOCALVIDMEM标志同时使用。

    · DDSCAPS_MODEX:指出这个表面是Mode X模式(320×200或320×240)的表面。

    · DDSCAPS_NONLOCALVIDMEM:指出表面建立在non-local video memory【不知怎么翻译】中。如果定义该标志,必须也同时使用DDSCAPS_VIDEOMEMORY标志。但是不能同DDSCAPS_LOCALVIDMEM同时使用。

    · DSCAPS_OFFSCREENPLAIN:这是一个简单的离屏表面。

    · DDSCAPS_OWNDC:这个表面将具有长周期的设备上下文。

    · DDSCAPS_PRIMARYSURFACE:主表面。

    · DDSCAPS_STANDARDVGAMODE:是标准的VGA模式表面。不能同DDSCAPS_MODEX同用。

    · DDSCAPS_SYSTEMMEMORY:建立在系统内存里的表面。

    · DDSCAPS_VIDEOMEMORY:这个表面建立在显示内存里。

    天啊,终于介绍完了这个结构。现在我们准备建立表面吧。第一步当然是填充DDSURFACEDESC2结构。Microsoft推荐大家当你使用一个结构之前,你应该把它先初始化为0。有鉴于此,我经常使用这样一个宏:

    #define INIT_DXSTRUCT(dxs) { ZeroMemory(&dxs, sizeof(dxs)); dds.dwSize = sizeof(dxs); }

    它可以用于任何一个DirectX结构,因为它们都有dwSize成员,所以这是很方便的。如果你以前从来没有看过ZeroMemory()这个函数,它只是由函数memset()扩充来的宏,在Windows的头文件中用#define定义好了,所以你不需要用#indlude添加任何东西就可以用它。

    初始化了结构之后,你得根据实际情况设置表面了。对于主表面,你需要ddsCaps和dwBackBufferCount,对于离屏缓冲区,你也需要dwHeight和dwWidth,但不需要dwBackBufferCount。对于一些表面你可能还需要颜色值,但我们不把它弄得太复杂了。填充完结构后,你需要调用IDirectDraw7::CreateSurface()函数,原形是这样:

    HRESULT CreateSurface(

    LPDDSURFACEDESC2 lpDDSurfaceDesc,

    LPDIRECTDRAWSURFACE7 FAR *lplpDDSurface,

    IUnknown FAR *pUnkOuter

    );

    这些参数的意义可能你也能猜出个大概了,毕竟我们已经习惯了这些疯狂的DirectX素材:

    · LPDDSURFACEDESC2 lpDDSurfaceDesc:表示要创建表面的描述结构。当然是个指针了。

    · LPDIRECTDRAWSURFACE7 FAR *lplpDDSurface:为指向表面指针的指针。此参数在此函数调用成功后填充。为什么要使用指向指针的指针呢?这是因为我们的任务就是分配一片表面内存区域,这样只能使用指针(表面指针)作为操作该表面内存区域的标志,返回值应该是该指针值而不是该指针所表示的内容(具体的表面)。当我们使用函数参数传递该值时,又只能使用指针(即指针的指针)修改表面指针的内容而不是表面指针所代表的表面内存区域。(理论复杂,使用简单,不明白不要太在意)

    · IUnknown FAR *pUnkOuter:看过这个模式吧,无论何时调用pUnkOuter,都是关于COM应用的,我们不想在这儿浪费时间,设置为NULL好了。

    来个实例吧,你会明白一切的。希望在实例里,我们要一个主表面和一个紧随主表面的后缓冲区,还有一个离屏缓冲区用来放置位图。假设我们已经得到了IDirectDraw7接口指针,代码如下:

    复制代码
    DDSURFACEDESC2 ddsd; // surface description structure
    
    LPDIRECTDRAWSURFACE7 lpddsPrimary = NULL; // primary surface
    
    // set up primary drawing surface
    
    INIT_DXSTRUCT(ddsd); // initialize ddsd
    
    ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT; // valid flags
    
    ddsd.dwBackBufferCount = 1; // one back buffer
    
    ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | // primary surface
    
    DDSCAPS_COMPLEX | // back buffer is chained
    
    DDSCAPS_FLIP | // allow page flipping
    
    DDSCAPS_VIDEOMEMORY; // create in video memory
    
    // create primary surface
    
    if (FAILED(lpdd7->CreateSurface(&ddsd, &lpddsPrimary, NULL)))
    
    {
    
    // error-handling code here
    
    }
    复制代码

      你当然还可以用CreateSurface()函数创建复杂表面,只是使用DDSCAPS_COMPLEX标志罢了。由于刚才我们创建了一个后缓冲区,所以我们还得必须得到指向它的指针。那就得调用IDirectDrawSurface7::GetAttachedSurface()函数了:

    HRESULT GetAttachedSurface(

    LPDDSCAPS2 lpDDSCaps,

    LPDIRECTDRAWSURFACE7 FAR *lplpDDAttachedSurface

    );

    参数很简单啦:

    · LPDDSCAPS2 lpDDSCaps:指向创建后缓冲区表面的DDSCAPS2结构。你就可以使用DDSCAPS2结构中相应的成员了。

    · LPDIRECTDRAWSURFACE7 FAR *lplpDDAttachedSurface:后缓冲区表面指针的地址。简单理解为声明一个指针,然后把指针的地址传递给该参数。

    看看下面的代码就明白了:

    复制代码
    LPDIRECTDRAWSURFACE7 lpddsBack = NULL; // back buffer
    
    // get the attached surface
    
    ddsd.ddsCaps.dwCaps = DDSCAPS_BACKBUFFER;
    
    if (FAILED(lpddsPrimary->GetAttachedSurface(&ddsd.ddsCaps, &lpddsBack)))
    
    {
    
    // error-handling code here
    
    }
    复制代码

    感觉有点儿入门了吗?如果你很难记住以上步骤,那么你是一个正常人,反复运用就会熟悉了。没有人能记住所有的庞大的结构成员和标志常量,这就是我们手边总是准备程序员参考手册或者拥有MSDN Library CD的原因了^_^ !OK,最后一步是建立离屏缓冲区。假设它的宽400,高300,(单位是象素)代码如下:

    复制代码
    LPDIRECTDRAWSURFACE7 lpddsOffscreen = NULL; // offscreen buffer
    
    // set up offscreen surface
    
    INIT_DXSTRUCT(ddsd); // initialize ddsd
    
    ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT; // valid flags
    
    ddsd.dwWidth = 400; // set width
    
    ddsd.dwHeight = 300; // set height
    
    ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | // offscreen buffer
    
    DDSCAPS_VIDEOMEMORY; // video memory
    
    // create offscreen buffer
    
    if (FAILED(lpdd7->CreateSurface(&ddsd, &lpddsOffscreen, NULL)))
    
    {
    
    // error-handling code here
    
    }
    复制代码

    表面这些学问就介绍到这儿,还有好多东西要介绍,可是唯一的问题是文章太长了,我们先暂停吧。你现在可以建立一个最基本的,但是什么也不显示的表面。

    千万记住了,你使用的每一个DirectDraw接口和所有的表面,用完后一定要释放(Release)它们啊!切记、切记!!!!!!!

    展开全文
  • DirectX修复工具V4.0公测!

    万次阅读 多人点赞 2019-07-28 12:46:41
    DirectX修复工具V3.9版已经正式发布了!还是像原来一样,共提供三个版本以供不同用户进行选择,请直达链接下载:标准版,增强版,在线修复版。 以下的公测说明已经失效,仅供参考。 -------------------------...

    最后更新于2020-6-17

            大家好,DirectX修复工具V4.0版现已正式发布,欢迎下载!传送门:标准版增强版在线修复版

            以下公测说明已失效,仅供参考。

     

    --------------------------------------------------------------------------------------------------------------------

    --------------------分割线,以下为往期公测,现已失效,仅供参考-----------------------------

    --------------------------------------------------------------------------------------------------------------------

            大家好,即日起DirectX修复工具V4.0版发布最后一个公测版本,随后正式版将会与大家见面。本次程序更新将跨越一个大版本号,因此内容也有重要更新,不会让大家失望。此次V4.0版开发,开发重点有3个主要方向。第一,着重开发一些用户问的最多、需求最多,但是之前版本又不具备的新功能。第二,更新程序的数据包,使之能修复更多的内容。第三,之前版本BUG的修复。根据这些开发思路,本次更新将会带来如下内容:

            1、将原有的DirectX Repair.exe和DirectX_Repair_win8_win10.exe整合为单一的exe文件。新的DirectX Repair.exe将不再区分Windows版本,做到一个程序通吃WindowsXP、Win7、Win8、Win8.1、Win10,同时兼容32位和64位,彻底免去用户选择的困扰。

            2、程序界面更新,原“实验室”标签内的功能放到其他对应标签内,“实验室”中新增了控制程序更新的选项。。

            3、在“选项”菜单里新增了C++控制功能,共有5种C++修复模式可供选择(见图1)。虽然自V3.8版起就支持通过命令行选择C++修复模式,但由于一直没有GUI界面导致部分用户的使用体验较差。之前用户问的最多的问题就是为什么增强版第一次使用有那个检测C++的小箭头,但是以后再运行就没有了?其实程序有智能检测功能,只有当程序检测到系统中C++组件存在异常时,才会显示修复C++的箭头,如果C++都正常时则不显示。此次新增的“强制检测”检测选项可以让程序总是显示修复C++的箭头,避免误解。

    图1 全新的界面,全新的C++修复模式选项

           

            4、全面改进C++修复失败后的提示。在V3.9之前,如果C++修复失败,只会画一个红色叉子;在V3.9版中,如果开启了调试功能,除了叉子之外还会写出异常文件的数量。虽然有一定的提示,但用户仍然不知道具体是哪些文件修复失败导致的红色叉子,更不知道如何处理这些修复失败的文件。此次更新程序将着重优化此问题,当开启了调试模式后(见图2),在C++更新页面,如果修复完成后还存在问题,则程序不仅会给出错误数量提示,还会将有问题的C++变成超链接模式(见图3),方便跳转到全新的界面查看具体问题文件(见图4)。新的详细信息界面不仅会列出每个C++版本存在异常的文件,还会根据错误不同,给出详细的修复提示或解决方案,进最大努力协助用户修复异常的文件。只要在异常文件上点击右键即可显示修复提示(如图5)。这里截图只显示了一种错误——文件创建失败,还有很多其他错误原因及对应的解决方案,这里不一一列举了,如果您的电脑存在那些问题,程序都会对应进行提示的。不管是苦恼很久的修复失败,还是强迫症想要修复所有的文件,新版本都能满足您的要求。

    图2 “常规”选项卡开启调试模式

     

    图3 修复失败后变成超链接形式

     

    图4 全新的详细错误信息界面

     

    图5 修复提示

     

            5、优化了扩展功能,使标准版、在线修复版程序可以更好的扩展为增强版。同第2条更新一样,虽然在之前的版本里就支持通过命令行切换加密下载和非加密下载,但是由于没有GUI界面,同样影响了部分用户的使用。此次更新,在扩展界面直接出现了可视化图标,方便用户切换(如图6)。程序默认使用非加密连接扩展数据包,如果在您的电脑上无法扩展,可直接点击小锁的图标切换为加密连接,这样可以避免很多由于防火墙、安全策略限制导致扩展失败的问题。

            同时在settings.ini文件中新增了一条命令:ExtendFirst=True。如开启此条命令后,程序在运行前会自动扩展程序的数据包为增强版,免去了需要去扩展界面手动扩展的麻烦。同时,通过命令设置,也可以降低对电脑操作不熟练用户的使用难度,更方便地帮他们将标准版、在线修复版程序扩展为增强版。命令行同样支持此命令,具体语法请通过/?或/Help参数查看。

    图6 可切换加密/非密链接

     

            6、优化DirectX加速的支持,优化对于显卡驱动的检测,如果修复完成后DirectX加速仍未开启则提示用户。

            7、更新了C++2013数据包,更新了C++2015-2019数据包,新的数据包可通过扩展下载。同时,由于最新版C++2013需要的认证文件在原版Windows7中不存在,此次更新支持手动修复无效的证书。此修复需要按照本文第4条(图2)开启“修复失败时启用错误调试”功能后才能进行。对于后续的Windows7 SP1版、Win8、Win10等系统无需此项修复。

            8、优化了API Sets检测修复模式。旧版本中的“可用”状态将不再存在,程序会进行增强检测,结论只有“正常”或“异常”。

            9、一个神秘黑科技,0xc000007b的克星。该功能由于还在开发中,故暂未提供入口。仅支持部分受邀用户测试该功能。

            10、修复若干BUG,其他若干改进,若干新功能,这些都不在这里一一赘述,大家可以待正式版发布后,到更新日志中查看。

     

            这么多新功能,那如何试用呢?如果您想试用DirectX修复工具V4.0版,您必须首先同意并遵守下述规定:

     

    •     提供给您的程序属于测试版,有时间使用限制,仅限您本人使用,禁止以任何形式发布或共享;

     

    如果您同意上述条款,请按下面的步骤进行操作:

    1、首先前往我的百度网盘下载最新版公测程序(备注:公测阶段使用的程序版本号为V3.9.x,在正式版发布时会升级为V4.0)。

    https://pan.baidu.com/s/1UTO1xPDF7htZ4h7_wmGBuw

    密码:bhdg

    2、运行新的“DirectX Repair.exe”,在“选项”-“扩展”选项卡中扩展程序至增强版,并在“常规”选项卡中勾选“修复失败时启用错误调试”功能。然后回到主界面点击“检测并修复即可”。如果任何组件修复失败,请按照本文上述第4条内容手动修复异常文件。

    3、您试用测试版后,如果有任何意见、建议或者疑问,均可通过以下两种方式进行反馈:

    (1)在本程序的“帮助”菜单里有“用户反馈”的功能,请在此处填写相关信息进行反馈(推荐方式)。

    (2)直接给作者邮箱发邮件进行反馈。

    此反馈不是强制的,但是强烈建议您在试用后进行反馈,以便改进软件质量。对您的支持深表感谢。

    在此,也感谢大家多年来对我的支持,希望在大家的协助测试下,V4.0版本的各项功能完美无BUG。

     

     

    --------------------------------------------------------------------------------------------------------------------

    --------------------分割线,以下为往期公测,现已失效,仅供参考-----------------------------

    --------------------------------------------------------------------------------------------------------------------

            大家好,即日起发布DirectX修复工具V3.9版的最后一个公测版(版本号V3.8.8特别版),正式版预计于近日内发布,尽情期待。V3.9版中主要做出了如下改进:1、修复了一个因文件属性异常可能导致修复失败的BUG。此BUG有一定出现概率,特别是在API Sets等文件上,此次测试版做出了相应的改进,可以解决此问题导致的修复失败。2、修复了一个因文件安全状态异常可能导致修复失败的BUG。3、增强了对于C++2010修复的支持。根据众多用户的反馈,C++2010在部分电脑上总是修复失败。此次测试版将针对修复失败的问题作出改进,并且根据用户的反馈决定后续改进方向,最终根据实际情况决定是否将该代码推广到所有c++组件上。如果您想尝试此修复模式,别忘了要在“实验室”里把C++强力修复打勾。4、更新了DirectX加速的检测算法,新的算法速度稍慢,但是计算结果准确,可以保证与DirectX诊断工具一致。5、新增对于c++2015-2019数据包的支持。6、大幅优化程序体积。7、针对c++修复失败的情况,新增了修复失败文件数量的显示。请在“选项”界面中开启“修复失败时启用错误调试”功能,然后即可在更新c++的界面查看具体修复失败的文件数量,如下图。图中的x/y,y为总问题数,x为已修复成功数量。以图中为例,0/1意味着此次修复,发现c++2012中有一个文件存在异常,修复成功了0个。

     

     

    下面来说说对于V3.9公测版的一些声明:

    如果您想试用DirectX修复工具V3.9版,您必须首先同意并遵守下述规定:

     

    •     提供给您的程序属于测试版,仅限您本人使用,禁止以任何形式发布或共享;

     

    如果您同意上述条款,请按下面的步骤进行操作:

    1、首先下载DirectX修复工具V3.8增强版,下载后解压。

    2、前往我的百度网盘下载最新版公测程序(备注:公测阶段使用的程序版本号为V3.8.x,在正式版发布时会升级为V3.9)。

    https://pan.baidu.com/s/1AucOdjIh2tJ3EW0EcWEvYw

    密码:jcix

    请将下载的测试版文件解压,将解压得到的“DirectX Repair.exe”等文件和“Data”文件夹拷贝到刚才下载的V3.8版文件夹下,并覆盖原文件。

     

    3、运行新的“DirectX Repair.exe”,在“选项”中勾选“C++强力修复”,然后进行修复即可。

     

    4、您试用测试版后,如果有任何意见、建议或者疑问,均可通过以下两种方式进行反馈:

    (1)在本程序的“帮助”菜单里有“用户反馈”的功能,请在此处填写相关信息进行反馈(推荐方式)。

    (2)直接给作者邮箱发邮件进行反馈。

    此反馈不是强制的,但是强烈建议您在试用后进行反馈,以便改进软件质量。对您的支持深表感谢。

     

     

    以下的公测说明已经失效,仅供参考。

    --------------------------------------------------------------------------------------------------------------------

    --------------------分割线,以下为往期公测,现已失效,仅供参考-----------------------------

    --------------------------------------------------------------------------------------------------------------------

        大家好,时间飞快,转眼2018年即将逝去。V3.7版本发布后广受好评,切实解决了很多用户软件使用的异常。V3.7版中首次引入的强力修复功能,也为一些之前版本解决不了的顽疾提供了修复方案。经过正式版发布后的几个月的用户反馈,目前发现了V3.7版存在的一些不足之处,因此在此启动V3.8版公测活动,致力于为大家提供更好、更快的修复体验。今日发布的公测版为V3.8版发布前的最后一个公测版,V3.8正式版即将发布,敬请期待。

     

        V3.8版中的目前最主要有如下更新:1、更新了c++2015/c++2017数据包至最新,优化程序体积,提高修复成功率。2、针对V3.7版c++强力修复功能存在的一个小BUG进行了修复。V3.7版在使用强力修复时,在极个别的电脑上会出现无法修复c++的情况(具体现象为弹出修复c++的窗口后,c++对应项目前直接画红叉,然后开始15秒倒计时,此时主界面上的进度条并未走完,进度卡住)。新版程序已经针对此问题做出了一定程度的优化,可以最大程度避免此问题。如果有用户遇到此类问题的,请参阅如下说明试用V3.8版。3、新增可以通过命令行直接快速开启、关闭DirectX加速,无需显示程序主窗口。具体命令为:/EnableDirectDraw以及/DisableDirectDraw,分别表示快速开启Direct加速及快速关闭Direct加速。此命令可以配合/passive以及/quiet命令,可实现提示的自动关闭以及静默操作。4、更新了程序的调用机制。

     

    下面来说说对于V3.8公测版的一些声明:

    如果您想试用DirectX修复工具V3.8版,您必须首先同意并遵守下述规定:

     

    •     提供给您的程序属于测试版,仅限您本人使用,禁止以任何形式发布或共享;

     

    如果您同意上述条款,请按下面的步骤进行操作:

    1、首先下载DirectX修复工具V3.7增强版,下载后解压。

    2、前往我的百度网盘下载最新版公测程序(备注:公测阶段使用的程序版本号为V3.7.x,在正式版发布时会升级为V3.8)。

    https://pan.baidu.com/s/1-LbRvz5aFlvzMA2pdorsEw

    密码:uxc3

    请将下载的测试版文件解压,将解压得到的“DirectX Repair.exe”文件拷贝到刚才下载的V3.7版文件夹下,并覆盖原文件。

     

    3、运行新的“DirectX Repair.exe”,打开程序的“选项”界面,在扩展选项卡内将程序扩展完整。扩展完毕后进行修复即可。

     

    4、您试用测试版后,如果有任何意见、建议或者疑问,均可通过以下两种方式进行反馈:

    (1)在本程序的“帮助”菜单里有“用户反馈”的功能,请在此处填写相关信息进行反馈(推荐方式)。

    (2)直接给作者邮箱发邮件进行反馈。

    此反馈不是强制的,但是强烈建议您在试用后进行反馈,以便改进软件质量。对您的支持深表感谢。

       

     

     

     

     

     

        以下的公测说明已经失效了,仅供参考。

    --------------------------------------------------------------------------------------------------------------------

    --------------------分割线,以下为往期公测,现已失效,仅供参考-----------------------------

    --------------------------------------------------------------------------------------------------------------------

     

        大家好,DirectX修复工具V3.7版在大家的期待中即将与大家见面了,从即日起开始最后阶段公测。最后阶段公测的程序相较之前的各阶段的功能更加丰富,也更接近最后的正式版本。

     

        此次更新的内容较多,最主要的有如下几点:1、新增对于一个DirectX12文件d3dcompiler_47.dll的支持。2、更新了c++ 2015数据包,可以修复更多问题。3、将c++ 2015数据包中的模块进行了细化,分为2015主文件和API Sets,程序可以独立修复,独立显示结果,方便查看问题所在。4、新增了API Sets强力修复功能,修复成功率大幅提升(请到“选项”菜单内开启)。5、加强c++ 2015对全系列Windows系统的优化,可以修复更多问题。6、新增了对于繁体中文的支持(启用方法是在settings.ini文件中把Language的值改为tChinese)。7、新增对于c++ 2017的支持,同时可大幅减少c++ 2015更新失败的问题。8、新增C++强力修复功能,极大提高c++修复成功率。还有诸多细节性问题在此不做一一介绍,待正式版发布时可以从更新日志内查看。

    blog.csdn.net/vbcom

        此次更新的功能主要集中在选项菜单里的“实验室”标签内。C++强力修复功能,通过全新的代码设计,彻底改善对于顽固异常文件的处理,极大提高修复成功率。API Sets强力修复功能,参照了DirectX文件的精细修复方式,极大地改善了修复失败的情况。修复失败时启用错误调试功能,针对之前版本出现的所有文件均修复失败的问题专门研发,可以在出现问题时分析错误原因,为将来的正式版彻底杜绝此问题奠定基础。

     

        V3.7版所要包含的主要新功能在此测试版上已经全部提供,后续的测试版本将主要集中在目前版本的调优及BUG消除上,预计正式版在2018年年中发布,敬请期待。

        

     

        下面来说说对于V3.7公测版的一些声明:

    如果您想试用DirectX修复工具V3.7版,您必须首先同意并遵守下述规定:

     

    •     提供给您的程序属于测试版,仅限您本人使用,禁止以任何形式发布或共享;

     

     

     

     

     

    如果您同意上述条款,请按下面的步骤进行操作:

    1、首先下载DirectX修复工具V3.5增强版,下载后解压。

    2、前往我的百度网盘下载最新版公测程序(备注:公测阶段使用的程序版本号为V3.6,在正式版发布时会升级为V3.7)。

    https://pan.baidu.com/share/init?surl=HbBzz2Q1fJf4XzoitfsAVg

    密码:dt5u

    请将下载的测试版文件解压,将解压得到的“DirectX Repair.exe”文件以及“Data”文件夹拷贝到刚才下载的V3.5版文件夹下,并覆盖原文件和文件夹。

     

    3、运行新的“DirectX Repair.exe”,并进行修复即可。

     

    4、您试用测试版后,如果有任何意见、建议或者疑问,均可通过以下两种方式进行反馈:

    (1)在本程序的“帮助”菜单里有“用户反馈”的功能,请在此处填写相关信息进行反馈(推荐方式)。

    (2)直接给作者邮箱发邮件进行反馈。

    此反馈不是强制的,但是强烈建议您在试用后进行反馈,以便改进软件质量。对您的支持深表感谢。

     

     

     

     

     

    --------------------------------------------------------------------------------------------------------------------

    ------------------------------分割线,以下为往期公测,现已失效,仅供参考-------------------------------------

    --------------------------------------------------------------------------------------------------------------------

     

        经过第一阶段的公测,我又收到了不少用户的反馈。根据预先的进度安排,从即日起DirectX修复工具V3.5版进入第二阶段公测。此阶段公测将持续到本月底,之后正式版将会与大家见面。

     

        V3.5版的更新的重点是新增了扩展功能,可以使任何版本的程序通过扩展成为增强版。今后大家不必再纠结下载到底是不是增强版,因为扩展后的程序一定是增强版。另外,程序更新了c++2013数据包,新增支持c++2015数据包,全面提升了可修复的文件范围。程序还根据大家的反馈,修复了一系列之前版本程序存在的BUG。并且,针对部分用户全部文件均下载失败的情况,给出了更加友好的提示。还有其他诸多细节性更新可以待正式版发布后在更新日志中查看。

     

        首先还是来说说对于V3.5公测版的一些声明:

    如果您想试用DirectX修复工具V3.5版,您必须首先同意并遵守下述规定:

     

    • 提供给您的程序属于测试版,仅限您本人使用,禁止以任何形式发布或共享;

     

     

     

    如果您同意上述条款,请按下面的步骤进行操作:

    1、首先下载DirectX修复工具V3.3增强版,下载后解压。

    2、前往我的百度网盘下载最新版公测程序(备注:公测阶段使用的程序版本号为V3.4,在正式版发布时会升级为V3.5)。

    http://pan.baidu.com/s/1hrEe8sO

    密码:uve3

    请将下载的压缩包解压,将解压得到的“DirectX Repair.exe”文件放在V3.3版目录下,并覆盖原文件。

     

    3、运行“DirectX Repair.exe”,打开主界面的的“工具”菜单下的“选项”对话框,在“扩展”界面中单击“开始扩展”。

     

    4、扩展成功后重新运行程序进行修复即可。(如果扩展失败,按照步骤3的方式重试)

     

     

    5、您试用测试版后,如果有任何意见、建议或者疑问,均可通过以下两种方式进行反馈:

    (1)在本程序的“帮助”菜单里有“用户反馈”的功能,请在此处填写相关信息进行反馈(推荐方式)。

    (2)直接给作者邮箱发邮件进行反馈。

    此反馈不是强制的,但是强烈建议您在试用后进行反馈,以便改进软件质量。对您的支持深表感谢。

     

     

     

    ---------------------------------------------------------------------------------------------------------------------------------------------

    ------------------------------分割线,以下为往期公测,现已失效,仅供参考------------------------------------------------

    ---------------------------------------------------------------------------------------------------------------------------------------------

     

        大家好,DirectX修复工具V3.5经过了前期一段时间的筹备与开发,第一版测试版已经准备就绪,开始接受大家的测试了。此次公测将分为多个阶段,现在为第一阶段。

        此次更新的重点是新增了扩展功能,可以使任何版本的程序通过扩展成为增强版。今后大家不必再纠结下载到底是不是增强版,因为扩展后的程序一定是增强版。另外,程序更新了c++2013数据包,新增支持c++2015数据包,全面提升了可修复的文件范围。还有其他诸多细节性更新可以待正式版发布后在更新日志中查看。

     

        首先还是来说说对于V3.5公测版的一些声明:

    如果您想试用DirectX修复工具V3.5版,您必须首先同意并遵守下述两条规定:

    1、提供给您的程序属于测试版,仅限您本人使用,禁止以任何形式发布或共享;

    2、请您务必将修复是否成功的结果反馈给我(以E-mail形式反馈),以便我及时改进软件质量。

     

     

    如果您同意上述两条条款,请按下面的步骤进行操作:

    1、首先下载DirectX修复工具V3.3增强版,下载后解压。

    2、向作者邮箱发邮件以获得DirectX修复工具V3.5公测版程序。

    请务必按照如下格式发送邮件,否则将不予回复。邮件主题:参与DirectX修复工具V3.5公测,邮件内容:我同意在收到测试程序15日内将测试结果通过邮件的形式进行反馈。(如有其他问题等可在上述邮件内容后写明)

    作者会以电子邮件的形式回复您的邮件,并在回复的邮件附件中包含测试程序。请您将收到的压缩包解压,将解压得到的“DirectX Repair.exe”文件放在V3.3版目录下,并覆盖原文件。


    3、运行“DirectX Repair.exe”,打开主界面的的“工具”菜单下的“选项”对话框,在“扩展”界面中单击“开始扩展”。

     

    4、扩展成功后重新运行程序进行修复即可。(如果扩展失败,按照步骤3的方式重试)

     

     

     

    ---------------------------------------------------------------------------------------------------------------------------------------------

    ------------------------------分割线,以下为往期公测,现已失效,仅供参考------------------------------------------------

    ---------------------------------------------------------------------------------------------------------------------------------------------

     

        大家好,DirectX修复工具又将迎来新一次的版本更新。在V3.2版发布的时间里,很多玩家向我提出反馈和建议。结合他们的建议和我的实际测试,发现V3.2版存在一些小小的BUG,因此,此次更新的重点是之前版本的BUG修复。

     

     

        首先来说说对于V3.3公测版的一些声明:

    如果您想试用DirectX修复工具V3.3版,您必须首先同意并遵守下述两条规定:

    1、提供给您的程序属于测试版,仅限您本人使用,禁止以任何形式发布或共享;

    2、请您务必将修复是否成功的结果反馈给我(以E-mail形式反馈),以便我及时改进软件质量。

     

    如果您同意上述两条条款,请按下面的步骤进行操作:

    1、首先下载任意版本的DirectX修复工具V3.2版:
    标准版增强版在线修复版

    2、下载后解压。

    3、向作者邮箱发邮件以获得DirectX修复工具V3.3公测版程序(邮件主题:参与DirectX修复工具V3.3公测)。作者会以电子邮件的形式回复您的邮件,并在回复的邮件附件中包含测试程序。请您将收到的压缩包解压,将解压得到的“DirectX Repair.exe”文件放在V3.2版目录下,并覆盖原文件。



    4、运行程序进行修复即可。

     

     

     

    ---------------------------------------------------------------------------------------------------------------------------------------------

    ------------------------------分割线,以下为往期公测,现已失效,仅供参考------------------------------------------------

    ---------------------------------------------------------------------------------------------------------------------------------------------

     

        大家好,不知不觉间DirectX修复工具V3.0发布已经快1年的时间了。这1年中,我收到很多玩家的反馈,并且结合了目前最新的实际情况,准备对DirectX修复工具进行一次升级。此次升级主要是更新了程序的数据包,以便符合最新的趋势;新增了一个控制DirectX加速的功能,这个功能也是之前网友们问的最多,最有疑问的功能;当然,程序还对很多细节进行了改进,这里就不一一介绍了,还是待正式版发布后大家通过更新日志来了解吧。

     

        下面来说说对于V3.2公测版的一些声明:

    如果您想试用DirectX修复工具V3.2版,您必须首先同意并遵守下述两条规定:

    1、提供给您的程序属于测试版,仅限您本人使用,禁止以任何形式发布或共享;

    2、请您务必将修复是否成功的结果反馈给我(以E-mail形式反馈),以便我及时改进软件质量。

     

    如果您同意上述两条条款,请按下面的步骤进行操作:

    1、首先下载DirectX修复工具通用数据包2014Q3版:
    http://download.csdn.net/detail/vbcom/7467795

    2、下载后解压得到Data文件夹。

    3、向作者邮箱发邮件以获得DirectX修复工具V3.2公测版程序(邮件主题:参与DirectX修复工具V3.2公测)。作者会以电子邮件的形式回复您的邮件,并在回复的邮件附件中包含测试程序。请您将收到的压缩包解压,将解压得到的“DirectX Repair.exe”文件放在与Data文件夹同一目录下。



    4、运行程序进行修复即可。

    展开全文
  • DirectX修复工具下载V3.5增强 绿色版 工具软件

    万次下载 热门讨论 2016-06-23 11:46:59
    DirectX修复工具(DirectX Repair)是一款系统级工具软件下载,简便易用。本程序为官方绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc...
  • 本系列文章由 net_assassin 编写,转载请注明出处。           http://blog.csdn.net/net_assassin/article/category/1100363       作者:net_assassin 邮箱: ... ...

    本系列文章由 net_assassin 编写,转载请注明出处。

     

     

     

     

     

    http://blog.csdn.net/net_assassin/article/category/1100363

     

     

     

    作者:net_assassin    邮箱: net_assassin@hotmail.com    期待着与志同道合的朋友们相互交流

     

               前面的章节讲到了Windows及相关内容,这一篇我们来唠唠DirectX,以及介绍如何编写初始化DirectX并且创建Direct3D设备的程序。

     

    DirectX是一种图形应用程序接口(API),简单的说它是一个辅助软件,一个提高系统性能的加速软件,由微软创建开发的,微软将定义它为“硬件设备无关性”。Direct是直接的意思,X是很多东西,加在一起就是一组具有共性的东西,从内部原理探讨,也简单说来DirectX 就是一系列的 DLL (动态连接库),通过这些 DLL,开发者可以在无视于设备差异的情况下访问底层的硬件,DirectX 封装了一些 COM(Component Object Model)对象,这些 COM 对象为访问系统硬件提供了一个主要的接口。


    一、历代

    为游戏而生之DirectX1.0

    DirectX出现是在Windows发布后,Windows3.1的声音处理一次只能播放一个音,图形处理的能力也很弱,加之整个Windows3.1的操作系统还很脆弱,这个时候它更不用不上,加上DirectX标准刚刚推出,很多硬件不支持,很多主流游戏也不支持,没有游戏、没有硬件,即使再有好的标准也是没有意义的,DirectX的魅力一直没有的到表现。但是随着Windows 95的发布,稳定的窗口操作系统,出现了划时代的变化,DirectX的命运也由此改变。

    2D崛起3D雏形之Directx2.0

    终于DirectX升级到了2.0,这个时候标志性的产物诞生了,2.0最大的改善是在Direct Draw,而且这个时代的经典游戏也出现了,很有代表意义的《红色警戒(RedAlert)》和《Diable(恐惧)》,红警的Windows版本和Diable都是在DirectX的标准上开发的。可惜的是,当时很多老显卡由于不能完全支持DirectX2.0,而不能玩Diable。除了2D以外,DirectX2.0的D3D部分的雏形基本完成,由于当时3D游戏较少,很多都是基于DOS开发的。世嘉公司的VR战士的PC版本就是基于DirectX2.0开发完成的,虽然效果粗糙了一些,但Direct 3D魅力还是可以感受到的。

    D3D发展壮大之Directx 3.0

    1997年微软发布了最后一个版本的Windows95,同年发布了DirectX 3.0,这时候DirectX的魅力被众多软硬件厂商看好,让D3D有了与OpenGL与Glide格斗的勇气。从这个版本开始,很多玩家知道了DirectX存在,也是这个时候开始出现了3D加速卡,如3DFX的Voodoo,Nvidia的Riva128,Intel的I740。这个时候3D游戏越来越多,但是当时的应用程序接口标准却有几个,主要的三个分别是专业的OpenGL接口,微软的D3D接口和3DFX的Glide接口。其中影响力最大的是3DFX的Glide,3DFX如日中天,Glide当然是大树底下好乘凉,游戏程序员使用它可以轻松容易的编出复杂、生动的3D效果,看好3DFX当然看好Glide。可是3DFX的自我封闭,不开放政策,导致它后来的破产被Nvidia收购,没有了3DFX支持Glide的影响力也从此走向衰弱,这是后话了。

    D3D日益强大之Directx 5.0

    微软似乎没有发布4.0版本的DirectX,DirectX3.0发布后没多久发布了DirectX5.0。尽管5.0与3.0时间间隔不长,但它的意义可不简单。DirectX5.0的D3D效果可以与当时的OpenGL平分秋色。首次引入了雾化的支持,让3D游戏更有空间真实感,更能让玩家体验到真实的三维三维游戏环境;除此以外在游戏系统的兼容性方面作了很大改善。

    D3D权威出现之DirectX 6.0

    在DirectX5.0发布不久第二代3D加速卡问世了,这一代3D加速卡借助DirectX6.0的技术争得不可开交。主要代表显卡是Nvidia的Riva TNT,并连的VooDoo2,VooDoo3。到了这个时代,市场格局已经很清晰,是NVidia与3DFX的斗争。DirectX 6的3D效果更多了,而且借助硬件的强大性能,可以渲染出高分辨率下的32位色的3D效果,这一点采用PCI总线技术的VOODOO系列败下阵来,它只能支持800x600下的16位色渲染,而Nvidia一开始就使用先进的AGP总线结构,高规格,新技术,每次发布新品都给用户更高性能的享受,每次成功都为他奠定显卡老大的基础。

    D3D权威确立之Directx 7.0

    DirectX7的发布又一次把显卡市场进行重新整合,DirectX7最大的特色就是支持T&L,中文名称是“坐标转换和光源”。3D游戏中的任何一个物体都有一个坐标,当此物体运动时,它的坐标发生变化,这指的就是坐标转换;3D游戏中除了场景+物体还需要灯光,没有灯光就没有3D物体的表现,无论是实时3D游戏还是3D影像渲染,加上灯光的3D渲染是最消耗资源的。在T&L问世之前,位置转换和灯光都需要CPU来计算,CPU速度越快,游戏表现越流畅。使用了T&L功能后,这两种效果的计算用显示卡的GPU(可以理解为显示卡的CPU)来计算,这样就可以把CPU从繁忙的劳动中解脱出来,让CPU做他该作的事情,比如逻辑运算、数据计算等等。换句话说,拥有T&L显示卡,使用DirectX7,即使没有高速的CPU,同样能能流畅的跑3D游戏。T&L成为当时人们关注的焦点。这时候第一块个支持T&L功能的显示卡是Nvidia的Geforce 256, 随后发布的Geforce 2基本上可以说是Geforce 256的一个提速版本,除了速度快了很多以外,其他没有技术上的提升,同时ATI发布的Radeon7500,一度成为支持T&L功能的效果最好的显示卡。DirectX7的发布却成了VOODOO系列显卡的噩耗,这时候3DFX也走到了尽头,被Nvidia收购,成为了显示卡中的历史,带给后人的是遗憾和叹息。

    D3D的疯狂之 DirectX 8.0

    2001年微软发布了DirectX8,一场显卡革命开始,它首次引入了“像素渲染”概念,同时具备像素渲染引擎(Vertex Shader)与顶点渲染引擎(Pixel Shader),反映在特效上就是动态光影效果。它发布没多久,Madonion(就是今天的Futuremark)发布了基于DirectX8的3Dmark2001显卡测试软件,它支持DirectX8的全部特效。可是当时华丽的场景,只有极少数显卡才能体验到,绝大部分显卡都不能完成此软件的全部测试,其中的4个场景跑不出来。原因是,DirectX8集成了两大特技 D DVS (Vertex Shader)和PS(Pixel Shader)。通过vs和ps的渲染,可以很容易的宁造出真实的水面动态波纹光影效果。主要代表显卡是NVIDIA的Geforce 3,后期ATI的Radeon8500。DirectX8的发布成了真正的第4代3D加速卡时代来临的标志。

    让人耳目一新之Directx 9.0

    2002年底,微软发布DirectX9.0,如果从参数上看,DirectX9相比DirectX8仅是提高了PS和VS的版本,目前版本都是2.0版本,似乎没有质的变化,其实不然,下面分别对Pixel Shader和Vertex Shader比较。 
      首先,PS 2.0具备完全可编程的架构,能对纹理效果即时演算、动态纹理贴图,还不占用显存,理论上对材质贴图的分辨率的精度提高无限多;另外PS1.4只能支持28个硬件指令,同时操作6个材质,而PS2.0却可以支持160个硬件指令,同时操作16个材质数量,新的高精度浮点数据规格可以使用多重纹理贴图,可操作的指令数可以任意长,电影级别的显示效果轻而易举的实现。 
      其次,VS 2.0通过增加Vertex程序的灵活性,显著的提高了老版本(DirectX8)的VS性能,新的控制指令,可以用通用的程序代替以前专用的单独着色程序,效率提高许多倍;增加循环操作指令,减少工作时间,提高处理效率;扩展着色指令个数,从128个提升到256个。 
      另外,增加对浮点数据的处理功能,以前只能对整数进行处理,这样提高渲染精度,使最终处理的色彩格式达到电影级别。突破了以前限制PC图形图象质量在数学上的精度障碍,它的每条渲染流水线都升级为128位浮点颜色,让游戏程序设计师们更容易更轻松的创造出更漂亮的效果,让程序员编程更容易。

    微软一统3D规格的王牌:DirectX10
    DirectX10将完全放弃GPU当中的固定渲染模式,并且支持GPU行为的完全自由化,即GPU不在明确划分像素着色和顶点着色单元,并且支持多种任务,如2D/3D/视频加速等等任务的自由分配。DirectX10将加入Shader4.0技术,并首度实现RayTracing光线追踪,将位移贴图Displacement作为标准之一。


    二、家族成员

    微软开发了DirectX标准平台,并且根据硬件制造厂商和游戏厂商合作共同更新升级DirectX的标准。硬件制造商按照此标准研发制造更好的产品,游戏开发者根据这套标准开发游戏。也就是说,无论硬件是否支持某种特效,只要DirectX标准中有,游戏开发者就可以把它写到游戏中,当这个游戏在硬件上运行,如果此硬件根据DirectX标准把这个效果做到了此硬件驱动程序中,驱动程序驾驭其硬件算出结果,用户就可以欣赏到此效果。这就是“硬件设备无关性”,是DirectX真正意义所在。 
        通常,Windows对硬件访问的管制非常严格,用通常的办法不易访问,但DirectX通过“硬件抽象层(HAL)”给予了开发人员直接访问硬件的能力,HAL不仅解决了硬件及兼容性问题,而且开发人员可以利用它直接访问计算机的某些硬件设备,例如显示设备的直接显存控制和渲染,键盘、鼠标和游戏杆的控制的直接访问控制,音频设备的直接音频混合与输出能力等等,因此开发人员可以充分利用硬件加速将程序的性能优化到一个新的高度,如果目标机器不支持相应的硬件加速,DirectX还可以仿真加速器以提供强大的多媒体环境。DirectX家族包含的成员有Direct3D、DirectDraw、DirectInput、DirectMusic、DirectPlay、DirectSound和DirectShow。

    1、Direct3D、DirectDraw和DirectGraphics

        DirectDraw是DirectX家族中的元老,它为高速的2D渲染提供了良好的支持,由于其具备直接显存访问和位快传送的能力,使得2D图形的绘制速度相对GDI有了一个质的飞跃,其渲染速度甚至有上百倍的差距。在现在回忆当初玩“红色警戒”和“Diablo”的时候,大家可不要忘了DirectDraw的功劳。
        DirectDraw在DirectX3.0时就已经接近极致,但是随着PC图形技术的飞速发展,人们逐渐不再满足于2D的图形效果,而通过2D技术实现伪3D模拟又非常损失效率,这种需求直接导致了Direct3D的诞生,早期的Direct3D技术不甚完善,相对于2D技术还有一定的差距,直到图形加速卡支持硬件3D特效后,Direct3D才逐渐步入正轨,慢慢显示出它的性能优势来。下面让我们来回顾一下历史,看看Direct3D的“成长过程”:

    DirectX6中的Direct3D添加了如下新特性:

    • 几何形体的灵活顶点格式定义
    • 几何形体的顶点缓冲存储
    • 支持多纹理渲染
    • 自动纹理管理
    • 可选深度缓冲(使用Z Buffer或W Buffer)
    • 通过凹凸环境贴图(BUMPENVMAP)为反光面和水波特效提供逐像素的渲染和贴图能力DirectX7中的Direct3D添加了以下新特性:
    • 硬件坐标转换和灯光(T&L)支持
    • 立方体表面的环境贴图
    • 几何渲染
    • 改进的纹理渲染
    • 自动纹理坐标生成、纹理转换、投影纹理和任意面裁剪
    • D3DX实用库
    • 支持Intel MMX架构、Intel单指令多数据流(SIMD)、SSE®和 AMD® 3DNow®架构。

        版本到了8.0的时候,虽然它依然保持着向前的兼容性,但是它的结构发生了巨大的变化,3D图形处理技术逐渐统一在Vertex Shader和Pixel Shader。Vertex Shader被用来描述和修饰3D物体的几何形状,同时也用来控制光亮和阴影;Pixel Shader则用来操纵物体表面的色彩和外观。Direct3D和DirectDraw合二为一,DirectX家族诞生了一个新的成员-----DirectGraphics。同时也增添了很多令人激动的特性:

    • 完全集成DirectDraw与Direct3D 
        简化程序初始化过程并提高数据分配和管理的性能,这将减少内存消耗。同时,集成后的图形应用编程接口(API)允许并行的顶点输入流以达到更加灵活的渲染。 
    • 可编程顶点处理语言 
        允许你编写定制的着色器,如变形和渐变动画,矩阵调色板蒙皮,用户定义的光照模型,一般环境映射,可编程几何体或者任何其他开发者定义的算法。 
    • 可编程像素处理语言 
        允许你编写定制的硬件着色器,例如通用纹理组合公式,逐像素光照(凹凸贴图),适用于实现照片(真实)级镜面效果的逐像素环境贴图或者任何其他开发者定义的算法。 
    • 支持多重采样渲染 
        允许全场景反走样和多重采样效果,例如运动模糊及景深(镜头的聚焦效果)。 
    • 点精灵 
        允许高性能的粒子系统渲染,例如火花、爆炸、雨、雪等等。 
    • 3-D空间纹理 
        允许范围衰减,实现逐像素级光照及空间大气效果,甚至是更复杂的几何图形应用。 
    • 支持高维图元 
        对来自主要的3-D创作工具的3-D内容,增强其外观并简化内容映射。 
    • 高级技术 
        包含了用于输出Direct3D蒙皮网格的三维内容创建工具插件,使用了Direct3D多种不同技术,多分辨率层次细节(LOD)几何,还有高维表面数据。 
    • 索引顶点混合 
        扩展了几何混合的支持,允许通过指定使用一个矩阵索引把矩阵应用于顶点混合处理。 
    • 扩充了Direct3DX实用库 
        包含了大量的新函数。Direct3DX实用库是一个位于Direct3D之上的辅助层,用于简化3-D图形开发者的常规工作。它包括了一个蒙皮库,支持对网格的操作,还有组装顶点与像素着色器的功能。 

        DirectX每一次升级都会有重大的内核结构改变,它会给我们带来巨大的视觉冲击。DirectX7核心的T&L引擎到DirectX9干脆被抛弃了。因此对于图形芯片开发商、游戏开发商以及广大用户而言,DirectX 9的确是一项“绝无仅有的优越图形技术”。DirectX 9“具有多项令人兴奋的全新功能特征”:

    Direct3D图形渲染管道

    • Vertex Shader 2.0和Pixel Shader 2.0
        在DirectX9中,Vertex Shader和Pixel Shader的版本升级到了2.0,它们都支持64或甚至128位浮点色彩精度。浮点色彩在动态和精度上的增加给图像质量带来质的飞跃,这样在DirectX9中你可以轻易实现电影级别般逼真的效果!
    DirectX8和DirectX9的对比参数:


        Vertex Shader 2.0引入了流程控制,增加了条件跳转、循环和子程序。Vertex程序现在最多可以由1024条指令组成(之前只能用128条指令),增加的指令带来更加复杂和强大的表现,新的操作如正弦、余弦及其他强大的函数运算大大简化了代码的编写,并且能够表现更加复杂的效果。
     Vertex Shader 1.0
     VertexShader 2.0

    强大的可编程Pixel Shader是实现具有电影质量级别效果的真正精华所在。Pixel Shader 2.0可以支持高级程序语言和汇编语言,开发人员还可以将其汇编代码嵌入较高级的程序语言中。前一版的Pixel Shader语言被限制为只能使用最多6个材质和28条指令,而2.0版则将这一上限提升至最大16材质和160条指令,也新增了很多强化的运算和操作。
     Pixel Shader 1.4
     Pixel Shader 2.0

    此外各种Shader工具的大力协助,如nVidia的Cg语言和ATI的RenderMonkey,使得实时图形渲染的质量飞速提高,nVidia和ATI官方的Demo就足以说明这一点。DirectX9中也改进了部分接口定义,Vertex Shader和Pixel Shader分别单独提供了一个接口,而且提供了常见图形的绘制接口,如线段的绘制等,这进一步减轻了开发人员的负担。

    • 浮点型色彩和32位帧缓冲格式
        目前大多数色彩表示法(如RGB)用8位整数表示红、绿、蓝色,也许对于显示来说这已经足够了,但在运算中似乎还远不够。由于整数没有小数部分,因此当它们经过Pixel Shader极其复杂的数学运算后,就会产生较大的误差,这可能导致色彩明显失真。而DirectX9支持数种浮点色彩格式,使得其精度有了很大提高。同时DirectX9支持精确到每像素32位的帧缓冲格式,能够表现出4倍于目前亮度等级的数量,这使得图像看上去更加清晰和自然。
        除此以外,DirectX9还提供位移贴图(displacement maps)以及改进的设备模拟等特性的支持,并且毫无意外地,DirectX9 SDK中也进一步扩展了Direct3DX实用库,提高了开发效率。

    2、DirectSound、DirectMusic和DirectX Audio

        在DirectX中DirectSound和DirectMusic可以统称DirectX Audio。一个好的游戏是不能没有声音的,DirectX Audio负责了游戏中的音效控制。不仅仅是游戏,很多需要高质量音效的地方都有它们的影子,我们经常在一些播放软件的设置面板中看见是否使用DirectSound支持的选项。
        DirectX Audio做的不仅仅只是简单地对声音的回放。它提供了一个完整的系统,能够利用硬件加速的功能动态地操纵控制音轨和声道(soundtrack)。
        
    如果你想在你的程序中使用DirectMusic和DirectSound,你就能够获得以下功能:
    • 读入且播放例如MIDI, WAVE, 以及DirectMusic Producer run time等格式的声音文件。
    • 同时对多个声音资源进行混音播放。
    • 对播放的声轨进行高精度时间控制。
    • 可以动态地变更播放节拍与节奏,甚至实时地动态控制一些MIDI事件。
    • 使用DLS合成器(DirectX Audio自带的波表合成器),你的程序就可以确保在不同的计算机上听到相同的MIDI声音。你的程序能够播放不受类别限制,各试各样乐器的声音,使用DirectX Audio,你甚至还能够创造出独一无二的乐器声音类别并将它发布。
    • 把声音做3D定位,创造出3D的环境声响。
    • 可以非常容易地实现例如变调、回响,以及别的声音特效。
    • 能使用数量超过16个的MIDI音轨。DirectX Audio突破了从前只能使用16个MIDI音轨的限制,它把同时回放大数量的音轨变成为了可能,而这个数量仅仅只是受到了你的声音硬件合成器能力的限制。
    • 播放位于不同的Audiopaths上的声音段(segments),效果就可以各自实现在每一段声音里。
    • 实现在不同的端口(port)之间捕捉MIDI数据及流("thru")。
    • 从话筒或者别的输入设备中捕捉声音数据。

    如果使用DirectMusic Producer或类似程序中的源文件,你还能够做到
    • 在声音的回放期间能够做更多的控制,例如动态选择不同的音效变化器(variations)或切换不同的和旋级数。
    • 精确地定时重放音乐。
    • 利用变化器(variations)播放声音(wave)
    • Audiopaths利用Map performance channels可以使相同的声音段在channel的不同部分产生完全不同的播放效果。
    • 动态地创造出全新的音乐片段,这不需要专门算法库,仅仅需要你的作曲能力而已。
    • 动态地将存在的音乐片段进行组合过渡。
    • 在声音回放时端,程序可以获得存在于特殊节拍点的各类声音特效的信息。

    这些功能适用于常常只使用主音频流(mainstream)的程序。如果程序只要实现一些基本简单的功能,开发者将DirectX Audio设计得非常易用,很适合初学者。DirectX Audio也是可扩展的。好的程序可以利用虚函数(virtual)继承设计出新的类,例如:
    • 支持新的声音格式文件。
    • 音轨可以包含各类数据。
    • 处理信息的工具 - 比方说,可以截取记录实现变换,或者将要显示的歌词置入声音片段文件。
    • 自定义的音序器(sequencer)。
    • 自定义的合成器(synthesizer)。
    • 效果过滤器。(Effects filters)。

    值得一提的是,在DirectX9中加入了DirectMP3和DirectCD两个功能模块,它们使得主流的音频播放也能够通过DirectX与其调用程序更好地结合在一起。

    3、DirectInput

        在DirectX这个大家族中,DirectInput掌管着“行为控制权”。与Winodows事件响应相比,DirectInput可以直接访问硬件,直接从输入缓冲区内检索数据,从而获得比响应Windows消息更快的速度。此外DirectInput也对力反馈游戏杆(Force Feedback)提供了良好支持。

    4、DirectPlay

        网络底层程序的开发向来是令开发者头痛的一件事,而DirectPlay似乎兼顾了速度与易用性两个方面,在网络游戏这样一类对速度和效率要求较高的软件来说,针对游戏优化设计的DirectPlay显然是一个比较好的选择。DirectPlay提供了一个额外的层,使你的游戏和网络底层相隔。并且,你的游戏可以非常简单地使用DirectPlay API,并使用DirectPlay管理网络通讯。DirectPlay提供的特性,使多人游戏在开发中得到了很多简化。其中包括:
    • 创建和管理点对点、客户/服务会话(Session)
    • 在一个会话中管理用户(User)和组(Group)
    • 管理在不同网络平台上进行会话的成员之间发送的消息
    • 使游戏在大厅(Lobby)中互动
    • 使用户可以进行语音交互

    5、DirectShow

        作为DirectX中的又一重要成员,DirectShow提供了Windows平台下高质量的媒体捕获和回放能力,支持很多格式:ASF、MPG、AVI、MP3和WAV。DirectShow支持使用WDM设备或老式视频设备进行视频捕获。当有硬件支持的环境下,它会在使用视频或音频时自动选择是否使用硬件加速。
        DirectShow简化了媒体回放、格式转换和捕获任务。同时,当应用程序需要自定义底层流媒体解决方案时,它也提供直接流访问控制的功能。
        你可以用DirectShow编写DVD播放器、视频编缉程序、AVI到 ASF转换器、MP3播放器和数字视频捕获程序等等。

     

    让Direct3D转起来:

    #include <windows.h>
    #include <d3d9.h>
    #include <time.h>
    #include <iostream>
    using namespace std;
     
    #pragma comment(lib,"d3d9.lib")
    #pragma comment(lib,"d3dx9.lib")
     
    //program settings
    const string APPTITLE = "Direct3D_Windowed";
    const int SCREENW = 1024;
    const int SCREENH = 768;
     
    //Direct3D objects
    LPDIRECT3D9 d3d = NULL; 
    LPDIRECT3DDEVICE9 d3ddev = NULL; 
     
    bool gameover = false;
     
    //macro to detect key presses
    #define KEY_DOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
     
     
    /**
     ** Game initialization function
     **/
    bool Game_Init(HWND window)
    {
        MessageBox(window, "Game_Init", "BREAKPOINT", 0);
     
        //initialize Direct3D
        d3d = Direct3DCreate9(D3D_SDK_VERSION);
        if (d3d == NULL)
        {
            MessageBox(window, "Error initializing Direct3D", "Error", MB_OK);
            return 0;
        }
     
        //set Direct3D presentation parameters
        D3DPRESENT_PARAMETERS d3dpp; 
        ZeroMemory(&d3dpp, sizeof(d3dpp));
        d3dpp.Windowed = TRUE;
        d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
        d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
        d3dpp.BackBufferCount = 1;
        d3dpp.BackBufferWidth = SCREENW;
        d3dpp.BackBufferHeight = SCREENH;
        d3dpp.hDeviceWindow = window;
     
        //create Direct3D device
        d3d->CreateDevice(
            D3DADAPTER_DEFAULT, 
            D3DDEVTYPE_HAL, 
            window,
            D3DCREATE_SOFTWARE_VERTEXPROCESSING,
            &d3dpp, 
            &d3ddev);
     
        if (d3ddev == NULL)
        {
            MessageBox(window, "Error creating Direct3D device", "Error", MB_OK);
            return 0;
        }
     
        return true;
    }
     
    /**
     ** Game update function
     **/
    void Game_Run(HWND hwnd)
    {
        //make sure the Direct3D device is valid
        if (!d3ddev) return;
     
        //clear the backbuffer to bright green
        d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,255,0), 1.0f, 0);
        
        //start rendering
        if (d3ddev->BeginScene())
        {
            //do something?
        
            //stop rendering
            d3ddev->EndScene();
     
            //copy back buffer on the screen
            d3ddev->Present(NULL, NULL, NULL, NULL);
        }
     
        //check for escape key (to exit program)
        if (KEY_DOWN(VK_ESCAPE))
            PostMessage(hwnd, WM_DESTROY, 0, 0);
    }
     
    /**
     ** Game shutdown function
     **/
    void Game_End(HWND hwnd)
    {
        //display close message
        MessageBox(hwnd, "Program is about to end", "Game_End", MB_OK);
     
        //free memory
        if (d3ddev) d3ddev->Release();
        if (d3d) d3d->Release();
    }
     
     
    /**
     ** Windows event handling function
     **/
    LRESULT WINAPI WinProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
    {
        switch( msg )
        {
            case WM_DESTROY:
                gameover = true;
                PostQuitMessage(0);
                return 0;
        }
        return DefWindowProc( hWnd, msg, wParam, lParam );
    }
     
    /**
     ** Main Windows entry function
     **/
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {
        //set the new window's properties
        //previously found in the MyRegisterClass function
        WNDCLASSEX wc;
        wc.cbSize = sizeof(WNDCLASSEX); 
        wc.style         = CS_HREDRAW | CS_VREDRAW;
        wc.lpfnWndProc   = (WNDPROC)WinProc;
        wc.cbClsExtra     = 0;
        wc.cbWndExtra     = 0;
        wc.hInstance     = hInstance;
        wc.hIcon         = NULL;
        wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
        wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
        wc.lpszMenuName  = NULL;
        wc.lpszClassName = APPTITLE.c_str();
        wc.hIconSm       = NULL;
        RegisterClassEx(&wc);
     
        //create a new window
        //previously found in the InitInstance function
        HWND window = CreateWindow( APPTITLE.c_str(), APPTITLE.c_str(),
           WS_OVERLAPPEDWINDOW,
           CW_USEDEFAULT, CW_USEDEFAULT,
           SCREENW, SCREENH,
           NULL, NULL, hInstance, NULL);
     
        //was there an error creating the window?
        if (window == 0) return 0;
     
        //display the window
        ShowWindow(window, nCmdShow);
        UpdateWindow(window);
        
        //initialize the game
        if (!Game_Init(window)) return 0;
     
     
        // main message loop
        MSG message;
        while (!gameover)
        {
            if (PeekMessage(&message, NULL, 0, 0, PM_REMOVE)) 
            {
                TranslateMessage(&message);
                DispatchMessage(&message);
            }
     
            Game_Run(window);
        }
     
        Game_End(window);
     
        return message.wParam;
    }
     
    

     

    展开全文
  • DirectX修复工具

    万次阅读 多人点赞 2011-11-12 11:10:55
    最后更新:2019-9-5 For English version, ...DirectX修复工具最新版:DirectX Repair V3.9 标准版NEW! 版本号:V3.9.0.29371 大小: 30.7MB/7z格式压缩,98.7MB/zip格式压缩 ,231MB/解压后 其他版本:增强版 在...

    最后更新:2020-6-14

    For English version, please refer to the bottom of this page.

    DirectX修复工具最新版:DirectX Repair V4.0 标准版   NEW!

    版本号:V4.0.0.35152

    大小: 30.7MB/7z格式压缩,96.9MB/zip格式压缩  ,231MB/解压后

    其他版本:增强版  在线修复版

    软件类型:免费绿色软件

    语言:简体中文/繁体中文/English

    软件类型:系统修复/系统增强

     

    MD5校验码(校验工具下载):

    DirectX Repair.exe/16a1477a1e5e0cb16f1bcd3a1a01bf62

    DirectX_Repair_win8_win10.exe/8a72de9bfabd230949a85b2a994df5c8

    备注:暂无

     

     

    下载地址1:

     https://download.csdn.net/download/VBcom/12521717

    下载地址2(免积分):

    https://weidown.com/xiazai/5044.html

    下载地址3(免积分):

    http://www.onlinedown.net/soft/120082.htm

    其他语言版/Other languages:繁体中文English

     

     

    说明:

        此页面链接指向的程序为标准版。标准版、增强版、在线修复版的区别如下图所示。如果您需要其他版本,请点击上方的快捷链接。作者推荐使用增强版。

     

    软件简介:

        DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。

        本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题设计,可以完美修复该问题(详情请参见我的博客《运行游戏时出现0xc000007b错误的解决方法》,其他用途请参见我的博客《让作者告诉你DirectX修复工具到底能解决什么问题》)。本程序中包含了最新版的DirectX redist(Jun2010),并且全部DX文件都有Microsoft的数字签名,安全放心。

        本程序为了应对一般电脑用户的使用,采用了易用的一键式设计,只要点击主界面上的“检测并修复”按钮,程序就会自动完成校验、检测、下载、修复以及注册的全部功能,无需用户的介入,大大降低了使用难度。在常规修复过程中,程序还会自动检测DirectX加速状态,在异常时给予用户相应提示。

        本程序适用于多个操作系统,如Windows XP(需先安装.NET 2.0,详情请参阅“致Windows XP用户.txt”文件)、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 8.1 Update、Windows 10,同时兼容32位操作系统和64位操作系统。本程序会根据系统的不同,自动调整任务模式,无需用户进行设置。

        本程序的V4.0版分为标准版、增强版以及在线修复版。所有版本都支持修复DirectX的功能,而增强版则额外支持修复c++的功能。在线修复版功能与标准版相同,但其所需的数据包需要在修复时自动下载。各个版本之间,主程序完全相同,只是其配套使用的数据包不同。因此,标准版和在线修复版可以通过补全扩展包的形式成为增强版。本程序自V3.5版起,自带扩展功能。只要在主界面的“工具”菜单下打开“选项”对话框,找到“扩展”标签,点击其中的“开始扩展”按钮即可。扩展过程需要Internet连接,扩展成功后新的数据包可自动生效。扩展用时根据网络速度不同而不同,最快仅需数秒,最慢需要数分钟,烦请耐心等待。如扩展失败,可点击“扩展”界面左上角小锁图标切换为加密连接,即可很大程度上避免因防火墙或其他原因导致的连接失败。

        本程序自V2.0版起采用全新的底层程序架构,使用了异步多线程编程技术,使得检测、下载、修复单独进行,互不干扰,快速如飞。新程序更改了自我校验方式,因此使用新版本的程序时不会再出现自我校验失败的错误;但并非取消自我校验,因此程序安全性与之前版本相同,并未降低。

        程序有更新系统c++功能。由于绝大多数软件运行时需要c++的支持,并且c++的异常也会导致0xc000007b错误,因此程序在检测修复的同时,也会根据需要更新系统中的c++组件。自V3.2版本开始使用了全新的c++扩展包,可以大幅提高工业软件修复成功的概率。修复c++的功能仅限于增强版,标准版及在线修复版在系统c++异常时(非丢失时)会提示用户使用增强版进行修复。除常规修复外,新版程序还支持C++强力修复功能。当常规修复无效时,可以到本程序的选项界面内开启强力修复功能,可大幅提高修复成功率。请注意,请仅在常规修复无效时再使用此功能。

        程序有两种窗口样式。正常模式即默认样式,适合绝大多数用户使用。另有一种简约模式,此时窗口将只显示最基本的内容,修复会自动进行,修复完成10秒钟后会自动退出。该窗口样式可以使修复工作变得更加简单快速,同时方便其他软件、游戏将本程序内嵌,即可进行无需人工参与的快速修复。开启简约模式的方法是:打开程序所在目录下的“Settings.ini”文件(如果没有可以自己创建),将其中的“FormStyle”一项的值改为“Simple”并保存即可。

        新版程序支持命令行运行模式。在命令行中调用本程序,可以在路径后直接添加命令进行相应的设置。常见的命令有7类,分别是设置语言的命令、设置窗口模式的命令,设置安全级别的命令、开启强力修复的命令、设置c++修复模式的命令、控制Direct加速的命令、显示版权信息的命令。具体命令名称可以通过“/help”或“/?”进行查询。

        程序有高级筛选功能,开启该功能后用户可以自主选择要修复的文件,避免了其他不必要的修复工作。同时,也支持通过文件进行辅助筛选,只要在程序目录下建立“Filter.dat”文件,其中的每一行写一个需要修复文件的序号即可。该功能仅针对高级用户使用,并且必须在正常窗口模式下才有效(简约模式时无效)。

        本程序有自动记录日志功能,可以记录每一次检测修复结果,方便在出现问题时,及时分析和查找原因,以便找到解决办法。

        程序的“选项”对话框中包含了7项高级功能。点击"常规”选项卡可以调整程序的基本运行情况,包括日志记录、安全级别控制、调试模式开启等。只有开启调试模式后才能在C++修复失败时显示详细错误信息,并提示用户进行手动修复。在“高级”选项卡中,可以控制C++的修复模式,默认为智能模式,即当程序检测到系统中C++存在问题时提示修复,否则不提示。强制检测模式下,程序将总是检查C++的情况,即使在C++已经正常或没有C++数据包时。默认不勾选模式与智能模式基本相同,只是修复C++的箭头默认处于不勾选状态,需要用户手动勾选后才会进行修复。不提示异常模式,只对标准版或在线修复版生效,即在常规检测后不再提示可能导致0xc000007b错误的C++异常。不检测模式,不再检测C++的状态,程序将只进行DirectX的检测与修复。C++强力修复功能,通过全新的代码设计,彻底改善对于顽固异常文件的处理,极大提高修复成功率。API Sets强力修复功能,参照了DirectX文件的精细修复方式,极大地改善了修复失败的情况。请仅在正常修复无效时再启用这两项强力修复功能。在“注册”选项卡中,程序可以自动注册系统文件夹下的所有dll文件。该项功能不仅能修复DirectX的问题,还可以修复系统中很多其他由于dll未注册而产生的问题,颇为实用。点击该按钮旁边的小箭头,还可以注册任意指定文件夹下的dll文件,方便用户对绿色版、硬盘版的程序组件进行注册。点击第二个按钮可以为dll文件的右键菜单添加“注册”和“卸载”项,方便对单独的dll文件进行注册。请注意,并不是所有的dll文件都可以通过这种方式注册。点击“扩展”选项卡可以将任意版本的程序扩展成增强版。点击“DirectX版本”选项卡,可以自行修改系统中DirectX的版本信息。点击“DirectX加速”选项卡可以控制系统中DirectX加速的开启与关闭。如果显卡驱动异常(包括显卡驱动未安装或显卡驱动太旧),程序会在该页面右上角进行提示。在“实验室”选项卡中,用户可以控制是否允许更新为最新的测试版程序,以及在更新后的数据包更新策略。

        新版程序集成了用户反馈程序,可以在用户允许的前提下发送检测修复结果。用户也可以在出现问题时通过反馈程序和软件作者进行交流,共同查找问题。反馈是完全自愿和匿名(如果不填写E-mail地址)的。

        本程序内置自动更新程序,用户只需在“关于”对话框中点击相应按钮,即可自动升级至最新版本。升级后会自动根据用户指定的更新策略更新C++数据包。如果因网络原因或服务器异常导致升级失败,用户也可以前往本程序官方博客手动下载最新版程序。

        本程序的通用版基于Microsoft .NET Framework 2.0开发,对于Windows 2000、Windows XP、Windows 2003的用户需要首先安装.NET Framework 2.0或更高版本方可运行本程序。有关下载和安装的详细信息请参阅“致Windows XP用户.txt”文件。对于Windows Vista、Windows 7、Windows 8、Windows 10及后续用户,可以直接运行本程序。

        本程序的官方博客地址为:http://blog.csdn.net/vbcom/article/details/6962388所有的更新以及技术支持都可以到该博客上找到。

     

     

    更新日志:

    DirectX修复工具V4.0更新日志(重要更新)
    新增的功能:
        新增C++修复失败时的详细错误显示功能。用户需在“选项”对话框中开启“修复失败时启用调试模式”功能,即可在C++修复失败时查看详细的错误原因,并根据提示手动修复。
        在“选项”窗口里新增“高级”选项卡。在该选项卡中可以控制修复C++的模式,默认为智能检测,其他可选项包括强制检测、默认不勾选、不提示异常、不检测;同时将原实验室内的“C++强力修复”功能和“API Sets强力修复”功能移入此处。原“高级”选项卡中的功能整体移至“注册”选项卡。
        新增了可以调整扩展连接方式的切换开关。程序默认使用非加密连接,如果因防火墙设置或其他原因导致的扩展失败,可以通过切换为加密连接来避免下载错误。
        新增一条控制C++扩展功能的命令。只要在Settings.ini文件中增加“ExtendFirst=True”命令,即可让程序在启动后自动扩展C++数据包,免去用户手动前往“选项”对话框中扩展的麻烦,也降低了普通用户将其使用的标准版、在线修复版程序扩展为增强版的难度。命令行同样支持此命令,具体语法请通过/?或/Help参数查看。
        新增了在常规修复过程中检测DirectX加速功能。如修复完成后程序检测到系统DirectX加速仍未开启,将会进行相应提示。
        新增程序更新功能。用户只需在“关于”对话框中点击更新按钮,程序即可自动搜索目前最新版本,并提示用户安装。更新成功后,程序会根据目前的C++数据包,智能扩展至最新的数据包。

    改进的功能:
        优化了本程序所需.NET运行库支持情况,从V4.0版起将不再默认提供DirectX_Repair_win8_win10.exe程序,而是通过兼容模式实现DirectX Repair.exe一个程序兼容所有操作系统,减小用户的使用难度。
        更新了部分c++数据包。新版程序更新了C++2013和C++2015-2019的数据包,新数据包兼容性更强,可以修复更多的内容。同时支持修复C++2013在部分系统上因证书错误导致的安装失败问题。
        优化了“选项”对话框中的功能位置,原“实验室”选项卡中的项目移至“高级”选项卡,同时在实验室中新增控制程序更新的功能。
        优化了对于API Sets修复功能的支持。新的检测模式将会进行更加细致的检测,其结论将为“正常”或“异常”,不再有“可用”的情况。
        优化了快速开启/关闭Direct加速功能,除原版本已支持的DirectDraw加速外,还支持快速开启/关闭Direct3D及AGP纹理加速功能。详情请通过/?或/Help参数查看。
        优化了对于Windows XP系统的支持,新版本在XP系统上不再支持C++强力修复功能。
        优化了反馈功能。新的代码可以更好的支持用户反馈功能,避免因被防火墙等拦截而导致的发送失败。
        优化了C++强力修复失败时的错误提示。新的提示将重点突出错误提示码,避免其他提示信息干扰用户判断。
        优化了部分英语翻译。新的翻译更加准确,便于用户理解,同时实现在英文模式下无其他语言信息干扰。
        优化了对于静默模式授权的支持。新版本可支持中文文件授权。
        其他细节性改进。

    修复的BUG:
        修复了一个在Windows10系统上可能导致Direct加速检测不正确的BUG。
        修复了一个导致授权信息显示异常的BUG。

     

     

    软件截图:

     

     

    -------------------------------------------------------------------------------------------------------------------------------------------

    ------------------------------------------------------------Dividing Line--------------------------------------------------------------

    -------------------------------------------------------------------------------------------------------------------------------------------

     

    DirectX Repair: DirectX Repair V4.0 Standard Edition   NEW!

    Version: V4.0.0.35152

    Size: 30.7MB/7z,96.9MB/zip  ,231MB/Decompressed

    Other editions: Enhanced Edition,Online Edition

    Licence type: Free

    Language: English/Simplified Chinese/Traditional Chinese

     

    MD5 check code:

    DirectX Repair.exe/16a1477a1e5e0cb16f1bcd3a1a01bf62

    DirectX_Repair_win8_win10.exe/8a72de9bfabd230949a85b2a994df5c8

    Note:This is the offical blog & website for DirectX Repair. All the updates and technical support can be found in this page. If you have any questions, please do not hesitate to contact with me by E-mail, or just comment below. Thank you.

     

     

     

    Download Link 1:

    https://drive.google.com/file/d/1bm8RJ87aCzvCgsiID0sAN8ctDNK0wS2g/view?usp=sharing

    Download Link 2:

    https://download.csdn.net/download/VBcom/12521717

    Download Link 3:

    http://www.onlinedown.net/soft/120082.htm

    Download Link 4:

    https://weidown.com/xiazai/5044.html

    Download Link 5 (NOT available yet):

     http://directxrepair.en.softonic.com/

     

    Software Description 

       

    DirectX Repair is a system-level assistant programme which is designed for addressing the problems in DirectX. This programme is installation free and can run directly under Windows OS. The main function of this programme is to check the possible errors under the DirectX, especially the 0xc000007b problems, and then fix them. This programme consists of the latest version of DirectX Redist (Jun2010), and all the DX files have the digital signatures from Microsoft. In this case, the security of this programme can be guaranteed.

        To be friendlier with the inexperienced users, this programme is designed to repair all the underlying issues by just clicking one button. Once the users click the button Check and Repair on the main form, the programme will finish verification, checking, downloading, repairing and registering automatically, without any further participation from the users, which reduces the difficulty of operating this software. Besides, this programme will notify the users of Direct Acceleration exceptions after the normal repairing processes.

        This programme is suitable for multiple Windows OS, such as Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 8.1 Update and Windows 10, and both 32-bit and 64-bit systems are supported. The programme can detect the version of the system and the bit of system automatically, and repair the necessary files accordingly. No manual settings are required.

        DirectX Repair V4.0 provides three different editions of programmes; for example, Standard Edition, Enhanced Edition and Online Edition. All editions can repair DirectX, while the Enhanced Edition can extra repair c++ components. The Online Edition is similar to the Standard Edition, but the files for repairing are not included in Online Edition. Consequently, Internet connection is required when it is repairing the files. The executables are exactly the same between each edition. What makes their differences is the data package that they include. In this context, the Standard and Online Edition could be extended to Enhance Edition if new data packages are added. From V3.5 on, DirectX Repair supports a new feature called Extending. The Extending page can be found from the sub-menu "Option" under the menu "Tool". The extending process requires Internet connection. The new data packages will be activated automatically after the successful extending. The time for extending varies from a few seconds to a few minutes according to the Internet speed. In some special cases, extending process might be blocked by firewalls. This can be solved by switching the downloading mode to a secured link by clicking the lock icon located in the top left corner of Extending page.

        From V2.0 on, DirectX Repair has updated the foundation of the programme with multithread programming technologies. The new design provides separated tasks for checking, downloading and repairing, which means that each task can perform individually without interfering between each other. The programme also improves the verification mechanism, so there will not be any errors during the verification process; however, this does not mean that the programme cancels the verification, so the security level remains the same as previous versions.

        The programme supports updating C++ components. Since most software requires the assistance of C++ while running and the exceptions in C++ might also lead to 0xc000007b errors, the programme will examine C++ during the checking process. From V3.2 on, DirectX Repair starts to employ new c++ packages, and it can significantly increase the rate of successful repairing, especially for the industrial software. Such C++ repairing is only available for Enhanced Edition. The Standard and Online Edition will inform the users to switch to Enhanced Edition if the programme finds that there might be possible errors from the exceptional C++ components (not from missed c++ components). Besides the normal repairing, the programme now supports C++ enhanced repairing. You can enable "C++ enhanced repairing" from the Option Dialogue if normal repairing is invalid. Please be aware that this function is experimental and should only be used when normal repairing is not successful.

        There are two types of form styles, which are normal style and simple style respectively. Normal style is the default style, and it is suitable for most users. Simple style is a simplified form, and only the most basic elements will be shown. In this style, checking and repairing will be implemented automatically, and the programme will quit in 10 seconds after completing all the processes. This design is to provide an easy operation for some labour sensitive users, and this style is easy to be integrated in other games or software to achieve the goal of human-involved free repairing. The simple style can be enabled by following steps: open the file "Settings.ini" under the programme folder (this file can be created manually if there is no such file under the folder); change the value of "FormStyle" to "Simple"; save the file and this feature is then enabled.

        The programme can be called from command line, and it can accept commands from command line. The commands can be added just after the path. There are 7 types of commands, which are language commands, form style commands, security level commands, enhanced repairing commands, C++ repairing configuration commands, Direct Acceleration configuration commands, and copyright commands respectively. The detailed commands can be acquired by adding "/help" or "/?" after the normal path.

        This programme also provides a feature called Advanced Filter. With this feature, the users can select which files are needed to be repaired, so the unnecessary repairing could be avoided. Meanwhile, the programme can also realize Advanced Filter by creating an auxiliary file called "Filter.dat" next to the executable. In this auxiliary file, the indexes of the selected files can be written individually in each line. This feature might be only suitable for the experienced users, and it is only available in the normal style.

        This programme can record the logs automatically while repairing. Each result is recorded separately with context information. This feature is quite useful especially when the repairing is failed, since the author can analyse the possible reasons from the recorded logs.

        There are seven advanced features in the Option dialog. In the General Page, users can change some basic settings that control the operation of the programme, including log record, security level, and debug mode. The programme will notify the users about the details of C++ errors that are failed to be repaired if debug mode is on. Tips will also be given so that the users may repair these errors manually. In the Advanced Page, users can decide the mode of repairing C++ components. The default value is Intelligent, in which the programme will notify the users to repair them only if errors are existed; otherwise, if there are no errors, the programme will not show any information about C++ components. In the Mandatory mode, the programme will always check and repair C++ no matter if there are errors or not. Don't Tick By Default mode is very similar to Intelligent mode, and the only difference between them is this mode will not repair C++ components by default. The users will have to tick the option manually to repair C++ components. Don't Prompt Exceptions means that the programme will not warn the users about the underlying issues existed in C++ components even if they may generate the 0xc000007b error. In the Don't Detect mode, no C++ component will be checked. The programme will only check and repair DirectX components. C++ Enhanced Repairing is a newly designed function which aims to improve the handling of some abnormal files and to increase the success rate. API Sets Enhanced Repairing references the detailed repairing scheme from DirectX files, and it promotes the results of repairing API Sets files. Please be noted that users should enable these enhanced repairing features only when normal repairing is not working. In the Registration Page, the programme will register all the dll files in your system folder automatically by clicking the corresponding button. This feature is not only suitable for the issues caused by DirectX, but also useful for the problems generated by the unregistered dll files. There is a small arrow beside this button, and it is designed to register the dll files in a specified folder. By clicking the button Add Items "Register" And "Unregister" To Dll-file Rght-click Menu, new items will appear in the right-click menu of the dll files. Please note that, not all the dll files can be registered by this method. In the Extending Tab, the programme can be extended to Enhanced Edition from Standard or Online Edition. In the DX Version Tab, the DirectX information can be amended by the users. In the DX Acceleration Tab, the DirectX accelerations can be enabled or disabled. If the graphics card driver is not valid (including not installed or too old), the program will prompt in the upper right corner of the page. In the Lab Tab, users can control the strategy of upgrading the programme.

        The new version of programme has embedded the feedback programme, and the repairing results can be sent back to the author with the permit of the end users. The end users can also communicate with the author by the feedback function to address the issues together. The feedback is voluntary and anonymous (if you do not fill in your E-mail address).

        From V4.0 on, upgrading function is embedded in the programme. The users can click the button Upgrade in the form About to upgrade to the lasted version. The C++ data packages will also be updated according to the designated strategy. If the auto-upgrading is failed due to any reasons like network or server unreachable, users can go to the official blog of this programme to download the lasted version manually.

        This programme is developed by Microsoft .NET Framework 2.0. To the users who are still using Windows 2000, Windows XP and Windows 2003, they need to install Microsoft .NET Framework 2.0 or higher versions before they could run this programme. The detailed steps for installing .NET can be found in the file "To Windows XP users.txt". The ones who use Windows Vista, Windows 7 or Windows beyond can run this programme directly on your systems.

        The official blog for DirectX Repair can be found by the following link:
    http://blog.csdn.net/vbcom/article/details/6962388
        All the updates and technical supports can be obtained from this web page.

     

    Update Log:

    DirectX Repair V4.0 (Key Updates)
    New Features:
        C++ error details are available if any of C++ components is failed to be repaired. The users shall enable the function "Enable debug mode when failed" in the Form "Option" first to use this feature. Once it is enabled, the users could check the detailed information about the C++ errors, and repair them manually with assistance from the programme.
        A new tab named "Advanced" is available in the "Option" form. In this tab, users can control the mode of repairing C++ components. The default value is Intelligent, while other options such as Mandatory, Don't tick by default, Don't prompt exceptions, and Don't detect are also provided. C++ Enhanced Repairing and API Sets Enhanced Repairing are also moved from Lab tab to this tab to have consistency with other C++ features. The features provided previously in Advanced tab are moved to Registration tab.
        A new switch to change the downloading mode for extending is available. This programme will use unsecured link by default. If the downloading process is blocked by the firewall or other software, users can switch to secure link to avoid it.
        A new command is available to control the extending process of C++ components. If users add a command "ExtendFirst=True" in the File Settings.ini, the programme will automatically extend itself to the enhanced edition once it started. This feature can help the users extend their programme fast without going to the Option tab and click for several buttons. This feature is also supported in command line. Please use /? or /Help to acquire more information.
        DirectX Acceleration will be detected automatically during the normal repairing process. The programme will prompt the users if some of DirectX Acceleration is still remained disabled after repairing.
        Programme upgrade is available. The programme can upgrade to the latest version if the users click the Upgrade Button in the Form About. The programme will also extend its data packages intelligently after upgrade according to the current package status.

    Improved Features:
        The dependence of required .NET runtime is optimised. From V4.0 on, this programme will no longer provide DirectX_Repair_win8_win10.exe by default. Instead, DirectX Repair.exe is designed to be compatible with all Windows OS versions to decrease the difficulty of selecting executable for new users.
        Some C++ packages are updated. According to the feedbacks from some users, C++ 2013 and C++ 2015-2019 packages have been updated to the latest version. New packages have better compatibility and can fix more errors. Meanwhile, certificate errors from C++ 2013 on some systems can be repaired by this version.
        Some features in "Option" dialogue have been moved. The options in Tab Lab have been moved to Advanced Tab, and some new functions that control the upgrade process is newly added to Lab tab.
        The detection of API Sets is optimised. The new algorithm will check the files more deeply, and the results will just be OK or Error, instead of Available.
        All Direct Acceleration can be enabled or disabled instantly in command line. Except DirectDraw which has been supported in previous versions, Direct 3D and AGP Texture can also be enabled or disabled instantly by command. Please use /? or /Help to acquire more information.
        Improved the support of Windows XP OS. From V4.0 on, C++ enhanced repairing is no longer supported in this OS.
        The feedback function is improved. The new code can support feedback better, and decrease sending failure generated by firewalls.
        The tips for C++ enhanced repairing are improved. New tips will focus on the error code instead of other information which may generate influences on users. 
        Some parts of English translation are improved. The new translations are more accurate and correct, which could provide a better understanding of the programme. Meanwhile, no other languages will be shown in English mode to avoid influences on users.
        Improved the authentication for quiet mode. The new version can support authenticate to Chinese characters.
        Other detailed improvements.

    Fixed Bugs:
        A bug that may provide incorrect results of DirectX Acceleration on some Windows 10 OS is fixed.
        A bug that will show incorrect layout of authorization information is fixed.

    展开全文
  • directx 7.0

    2017-07-20 12:11:46
    已经是非常精简的版本了
  • DirectX修复工具V3.8增强版

    千次下载 热门讨论 2018-12-15 14:07:52
    DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题...
  • DIrectX老版本

    2019-01-04 16:21:44
    DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。  本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题...
  • DirectX+Repair+V3.2在线版

    2017-08-16 19:53:42
    DirectX
  • DirectX之一——Windows编程基础框架

    千次阅读 2018-03-30 15:08:46
    DirectX——Windows编程基础框架 前言   DirectX是由微软公司创建的一系列专为多媒体以及游戏开发的应用程序接口,内部组件按照性质可分为:显示部分、声音部分、输入部分和网络部分。其中Direct3D便属于显示...
  • DirectX修复工具增强版

    万次阅读 多人点赞 2012-02-09 13:26:54
    DirectX修复工具最新版:DirectX Repair V3.9 增强版NEW! 版本号:V3.9.0.29371 大小: 111MB/7z格式压缩,196MB/zip格式压缩,345MB/解压后 其他版本:标准版 在线修复版 MD5校验码: DirectX Repair.exe/eeab...
  • DirectX修复工具在线修复版

    万次阅读 多人点赞 2012-03-26 20:23:47
    DirectX修复工具最新版:DirectX Repair V3.9 在线修复版NEW! 版本号:V3.9.0.29371 大小: 971KB/7z格式压缩,2.63MB/ZIP格式压缩,5.62MB/解压后 其他版本:标准版增强版 MD5校验码(校验工具下载): ...
  • DirectX修复工具 V3.2增强 绿色版

    万次下载 热门讨论 2014-07-01 10:06:43
    DirectX修复工具 DirectX Repair 是一款系统级工具软件 简便易用 本程序为绿色版 无需安装 可直接运行 本程序的主要功能是检测当前系统的DirectX状态 如果发现异常则进行修复 程序主要针对0xc000007b问题设计 ...
  • DirectX修复工具 V3.0 官方绿色增强版

    万次下载 热门讨论 2013-09-21 12:03:30
    DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题...
  • DirectX修复工具 V3.3标准 绿色版

    万次下载 热门讨论 2015-05-03 09:43:18
    DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题...
  • DirectX修复工具最新版:DirectX Repair V3.7 增强版 NEW! 版本号:V3.7.0.26539 大小: 107MB/7z格式压缩,189MB/zip格式压缩,322MB/解压后 其他版本:标准版 在线修复版 MD5校验码:DirectX Repair.exe/...
  • DirectX修复工具强力修复实验包

    万次阅读 2018-02-16 19:57:48
    DirectX修复工具API Sets强力修复实验包下载地址: https://pan.baidu.com/s/1viLPeKp8vtFCy8Pr1S9CWw 密码:5d6n 实验包使用说明: 1、实验包仅支持DirectX修复工具V3.6.6版及以上版本。 2、首先将上述下载...
  • DirectX修复工具 V3.0标准版

    千次下载 热门讨论 2013-09-26 20:20:15
    DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题...
  • Directx修复工具

    2018-10-24 20:58:01
    Directx修复工具自动修复
  • DirectX修复工具 V3.5在线修复 绿色版 免安装版

    千次下载 热门讨论 2016-06-25 22:57:10
    DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题...
  • DirectX修复工具V3.7增强版

    千次下载 热门讨论 2018-04-21 17:48:57
    DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题...
  • DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题...
  • 大家应该对DirectX修复工具并不陌生,该工具主要就是为了解决0xc000007b问题而设计的(如果之前不知道这个工具的,可以参看DirectX修复工具增强版介绍)。然而,近日接连出现很多用户连DirectX修复工具也打不开,...
  •  近日接连接到一些用户的反馈,说他们在使用DirectX修复工具的时候,所有文件的状态均为修复失败或者下载失败(如下图)。虽然他们使用的是标准版或增强版而非在线修复版,程序还是会尝试下载需要的DirectX组件。 ...
  • DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题...
  • DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题...
  • DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题...
  • DirectX修复工具V1.0

    千次下载 热门讨论 2011-11-21 12:01:08
    DirectX修复工具(DirectX repair)是一款完全由本人自主开发的系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。资源中的技术文档包含程序的部分源代码,以供编程爱好者交流。 本程序适用于多个...
  • DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题...
  • DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题...

空空如也

1 2 3 4 5 ... 20
收藏数 53,793
精华内容 21,517
关键字:

directx