首先,先回顧一下DX9 SDK的歷史。從編譯鏈接的角度來,DX9 SDK可以分為前后兩個(gè)時(shí)期:早期需要鏈接靜態(tài)D3DX9庫文件,而從2005 February發(fā)布的DX9 SDK Update開始則正式改為鏈接動態(tài)庫,也就是從這個(gè)版本開始,編譯出來的程序開始依賴D3DX9_XX.dll了。
如果使用DX9SDK(如DX9.0A)時(shí)候使用:
#pragma comment(lib, “d3dx9”)
在這個(gè)版本中d3dx9.lib是一個(gè)靜態(tài)庫,其大小為4281KB,那么編譯出來的的模塊尺寸都非常大。然而這樣做的好處是即使在干凈系統(tǒng)的機(jī)器上,程序也可以正常運(yùn)行,完全不需要再添加其他D3DX9_XX.dll或者要求用戶安裝DX9 Runtime Library。
而如果我們能采用 2005 February以后發(fā)行的DX9 SDK,那么模塊就會變成鏈接d3dx9_xx.dll(此時(shí)的d3dx9.lib只是一個(gè)DLL的函數(shù)導(dǎo)出庫),其尺寸就會大大減少,但是會依賴 D3DX9_XX.dll了,其中XX數(shù)值由我們使用的SDK版本(發(fā)布時(shí)間)決定。例如,使用2007 August的SDK編譯出來的模塊就會依賴D3DX9_35.dll,其大小為3.55M。
下面,我列舉出到目前為止微軟的DX9 SDK對應(yīng)的D3DX9_XX.dll以及該版本上與編譯相關(guān)的更新:
D3DX SDK
|
安裝的D3DX9 DLL
|
尺寸
|
備注
|
Before February 2005
|
無,靜態(tài)庫
|
--
|
在 2005 February之前DX SDK中使用靜態(tài)庫方式編譯
|
February 2005 Update
|
d3dx9_24.dll
|
2.11M
|
第一次使用D3DX9鏈接動態(tài)庫方式,即d3dx9_XX.dll中的XX的最小數(shù)值為24
從這個(gè)版本開始不再支持Windows 2000平臺上DirectX的開發(fā)
|
April 2005 Update
|
d3dx9_25.dll
|
2.22M
|
獨(dú)立出由于開發(fā)DX應(yīng)用程序的UI框架(DXUT)
|
June 2005 Update
|
d3dx9_26.dll
|
2.19M
|
首次提供了用于VS.NET 2005開發(fā)的Sample Project
|
August 2005 Update
|
d3dx9_27.dll
|
2.21M
|
可以使用DX Viewer工具查看模型文件(*.x)
|
October 2005 Update
|
沒有與D3DX9 DLL相關(guān)的變化
|
--
|
提升了對VC 2005的支持
|
December 2005 Update
|
d3dx9_28.dll
|
2.21M
|
DirectX 10技術(shù)預(yù)覽
|
February 2006 Update
|
d3dx9_29.dll
|
2.22M
|
--
|
April 2006 Update
|
d3dx9_30.dll
|
2.27M
|
添加了DirectX 10 Sample
|
June 2006 Update
|
沒有與D3DX9 DLL相關(guān)的變化
|
--
|
更新了DirectX 10技術(shù)預(yù)覽
|
August 2006 Update
|
沒有與D3DX9 DLL相關(guān)的變化
|
--
|
--
|
October 2006 Update
|
d3dx9_31.dll
|
2.30M
|
為Direct3D 9提供了新的HLSL Shader編譯器
|
December 2006 Update
|
d3dx9_32.dll
|
3.26M
|
提供了DirectX 10第一次官方發(fā)布版本
擴(kuò)展了D3DX函數(shù)功能(Direct3D9Ex)
不再支持Windows 95/98/SE/ME
不再支持Shader Model 1
|
February 2007 Update
|
沒有與D3DX9 DLL相關(guān)的變化
|
--
|
為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
|
微軟在此版本聲稱,以后發(fā)布DX SDK的速度將會是一年4次,而不是像以前一樣,每兩個(gè)月發(fā)布一次。
首次引入DirectX 10.1概念
|
November 2007 Update
|
d3dx9_36.dll
|
3.56M
|
聲稱下一個(gè)版本的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開發(fā)的代碼
|
August 2008 Update
|
d3dx9_39.dll
|
3.67M
|
--
|
November 2008 Update
|
d3dx9_40.dll
|
4.17M
|
DirectX 11技術(shù)預(yù)覽
|
March 2009 Update
|
d3dx9_41.dll
|
未驗(yàn)證
|
Direct2D技術(shù)預(yù)覽
DirectWrite (text rendering) and DXGI (DirectX Graphics Infrastructure)預(yù)覽
|
注:截至此文章發(fā)布之時(shí),MS公布了August 2009 Update,此表會持續(xù)更新中...