DirectX9的链接方式和编译尺寸
如果使用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)预览 |