DirectX9的链接方式和编译尺寸

首先,先回顾一下DX9 SDK的历史。从编译链接的角度来,DX9 SDK可以分为前后两个时期:早期需要链接静态D3DX9库文件,而从2005 February发布的DX9 SDK Update开始则正式改为链接动态库,也就是从这个版本开始,编译出来的程序开始依赖D3DX9_XX.dll了。
  如果使用DX9SDK(如DX9.0A)时候使用:
  #pragma comment(lib, “d3dx9”)
  在这个版本中d3dx9.lib是一个静态库,其大小为4281KB,那么编译出来的的模块尺寸都非常大。然而这样做的好处是即使在干净系统的机器上,程序也可以正常运行,完全不需要再添加其他D3DX9_XX.dll或者要求用户安装DX9 Runtime Library。
  而如果我们能采用 2005 February以后发行的DX9 SDK,那么模块就会变成链接d3dx9_xx.dll(此时的d3dx9.lib只是一个DLL的函数导出库),其尺寸就会大大减少,但是会依赖 D3DX9_XX.dll了,其中XX数值由我们使用的SDK版本(发布时间)决定。例如,使用2007 August的SDK编译出来的模块就会依赖D3DX9_35.dll,其大小为3.55M。

下面,我列举出到目前为止微软的DX9 SDK对应的D3DX9_XX.dll以及该版本上与编译相关的更新:

D3DX SDK

安装的D3DX9 DLL

尺寸

备注

Before February 2005

无,静态库

--

在 2005 February之前DX SDK中使用静态库方式编译

February 2005 Update

d3dx9_24.dll

2.11M

第一次使用D3DX9链接动态库方式,即d3dx9_XX.dll中的XX的最小数值为24

从这个版本开始不再支持Windows 2000平台上DirectX的开发

April 2005 Update

d3dx9_25.dll

2.22M

独立出由于开发DX应用程序的UI框架(DXUT)

June 2005 Update

d3dx9_26.dll

2.19M

首次提供了用于VS.NET 2005开发的Sample Project

August 2005 Update

d3dx9_27.dll

2.21M

可以使用DX Viewer工具查看模型文件(*.x)

October 2005 Update

没有与D3DX9 DLL相关的变化

--

提升了对VC 2005的支持

December 2005 Update

d3dx9_28.dll

2.21M

DirectX 10技术预览

February 2006 Update

d3dx9_29.dll

2.22M

--

April 2006 Update

d3dx9_30.dll

2.27M

添加了DirectX 10 Sample

June 2006 Update

没有与D3DX9 DLL相关的变化

--

更新了DirectX 10技术预览

August 2006 Update

没有与D3DX9 DLL相关的变化

--

--

October 2006 Update

d3dx9_31.dll

2.30M

为Direct3D 9提供了新的HLSL Shader编译器

December 2006 Update

d3dx9_32.dll

3.26M

提供了DirectX 10第一次官方发布版本

扩展了D3DX函数功能(Direct3D9Ex)

不再支持Windows 95/98/SE/ME

不再支持Shader Model 1

February 2007 Update

没有与D3DX9 DLL相关的变化

--

为Direct3D9Ex提供了文档(Direct3D9Ex is a new version of Direct3D 9 for Vista and can actually be found in the Vista Platform SDK)

April 2007 Update

d3dx9_33.dll

3.33M

更新了Shader编译器(不再支持Shader 1.x)

June 2007 Update

d3dx9_34.dll

3.33M

可用Vista Direct3D9Ex APIs

August 2007 Update

d3dx9_35.dll

3.55M

微软在此版本声称,以后发布DX SDK的速度将会是一年4次,而不是像以前一样,每两个月发布一次。

首次引入DirectX 10.1概念

November 2007 Update

d3dx9_36.dll

3.56M

声称下一个版本的SDK(March 2008)中将会支持VS 2008,而不再支持VS 2003

March 2008 Update

d3dx9_37.dll

3.61M

DirectX 10.1 RTM

正式放弃支持VS 2003

正式加入对VS 2008的支持

June 2008 Update

d3dx9_38.dll

3.67M

HLSL编译器被改变,可能会影响使用之前的SDK开发的代码

August 2008 Update

d3dx9_39.dll

3.67M

--

November 2008 Update

d3dx9_40.dll

4.17M

DirectX 11技术预览

March 2009 Update

d3dx9_41.dll

未验证

Direct2D技术预览

DirectWrite (text rendering) and DXGI (DirectX Graphics Infrastructure)预览

注:截至此文章发布之时,MS公布了August 2009 Update,此表会持续更新中...
posted @ 2009-09-15 23:16  芈希有  阅读(1379)  评论(0编辑  收藏  举报