2009-06-19 78 views
0

我無法從主題執行方案。針對March09SDK編譯DX 9.0c應用程序=>無法使用較舊的DX 9.0c DLLs運行=>問題:)

我安裝了DirectX 9 2009 SDK,它是9,「sub」-version c,但是「sub-sub」-version是41,因此libs(d3dx9.lib d3d9.lib)將導出鏈接到dxd3d_41 .dll文件。

當我嘗試運行我的應用程序在DX9.0c但從2009年3月不可再發行的機器上現在顯而易見時,會發生什麼:),它失敗,因爲它無法找到dxd3d_41.dll。

哪個是這個問題的標準解決方案? 我該如何編譯我的應用程序以支持具有DX 9.0c的所有機器? 這是可以實現的嗎?

Thanx

+0

最後我檢查了一下,D3D沒有任何鏈接到d3dx。這是一個幫助程序庫,您可以選擇使用它以方便您,但不需要。如果您選擇使用它,則不是d3d。 – jalf 2009-06-19 18:00:36

回答

1

您需要安裝與您用於編譯的SDK相匹配的運行時。

迫使這在安裝有DirectX9c所有的機器工作的唯一方法是使用舊的SDK(第一9.0C SDK)。不過,我強烈建議避免這種情況。使用3月9日的版本會更好,並且可以安裝March運行時以及應用程序安裝。

0

的規則是,如果你鏈接到d3dx9那麼你預計處理確保安裝所需的Redist運行時組件。

看一看在DXSDK文檔的頁面「DirectX安裝的遊戲開發商。

1

最簡單的辦法是鏈接到微軟的DirectX最終用戶運行時更新您的下載頁面上,並告訴人們運行此首先要確保運行時組件是最新的安裝應用程序之前。

之後,下一個最簡單的做法是與您的應用程序捆綁必要的運行時更新並讓用戶在運行您的安裝程序之前運行它。

所有這些都記錄在SDK文檔中。