2012-09-17 30 views
15

Geliştirme platformum 7 x64 penceredir. VS2012'yi kurdum ve bazı Dx11 kodlarını içeren bir projeyi derlemek istiyorum.d3dx11.h Windows 8.0 sürümde değil

Özellikle, aşağıdaki dosyaları içerir: Zaten VS2011 benim geliştirme makinede yüklü olan

#pragma comment (lib, "d3dx11.lib") 
#pragma comment (lib, "d3dx10.lib") 

için

#include <d3dx11.h> 
#include <d3dx10.h> 

ve bağlantılar, ama VS2012 içinde birim test olanaklarının denemek istedim yerli C++ için.

VS2011'in yüklü ve DirectShow kodu üzerinde çalışması nedeniyle, Windows 7.1 SDK yüklü.

VS2012 bu aldı ve 7.1 SDK başvurular vardı, ama başvurulan 7.1 SDK ile VS2012 altında Projemin derleme hataları verdi:

"warning C4005: '__useHeader' : macro redefinition" 

Bu googled ve a query like mine on social.msdn.microsoft.com bulundu. ve çözüm bu sorunu çözmek için 7.1 SDK yerine Windows 8 kiti ile bağlantı önerilir.

Windows 8 setinde d3d11.h gibi başlıklar var, ancak d3dx11.h değil.

Windows 8 seti ile birlikte d3dx11'i (Dx SDK'dan), ancak çoklu "makro yeniden tanımlama" hataları olmadan nasıl ekleyebilirim?

cevap

17

this MSDN page adresinde aşağıdaki rahatsız edici alıntıları buldum.

D3DX Windows'un 8'de Direct3D kullanan için kanonik API kabul edilmez ve bu nedenle ilgili Windows SDK ile dahil değildir. Direct3D API ile çalışmak için alternatif çözümler araştırın.


projenin VC++ dizinleri değiştirin:

Windows 7'ye kadar eski projeler için

(ve öncesi) DirectX SDK numuneleri aşağıdaki adımlar D3DX DirectX SDK kullanarak uygulamalar oluşturmak için gerekli olan SDK üstbilgileri ve kitaplıkları için doğru sırasını kullanmak için aşağıdaki gibi.

i. Proje için Özellikler'i açın ve VC++ Dizinleri sayfasını seçin.
ii. Tüm Konfigürasyonlar ve Tüm Platformlar'ı seçin.
iii. (Sağ taraftaki açılır Açık)

Dizinler Dahil:

yürütülebilir Dizinler:; $ (DXSDK_DIR)

Kütüphane Dizinler Include $ (INCLUDEPATH) aşağıdaki gibi bu dizinleri ayarla : $ (LibraryPath); $ (DXSDK_DIR) Lib \ x 86

iv. Uygula'ya tıklayın.
v. X64 Platformunu seçin. vi. şöyle Kütüphane dizini ayarlayın:

Kütüphane Dizinler: $ (LibraryPath); $ (DXSDK_DIR) Lib \ x64

her yerde "d3dx9.h", "d3dx10.h" veya "d3dx11.h", projenize dahil edildi, açıkça "d3d9.h", "d3d10.h" ve "dxgi.h" veya "d3d11.h" ve "dxgi.h" içerdiğinden emin olun. İlk olarak 'u yeni sürümden aldığınızdan emin olmak için.

Gerekirse uyarı C4005 devre dışı bırakabilir

; Ancak, bu uyarı , bu başlıkların eski sürümünü kullandığınızı gösterir. projenizde DXGIType.h için

Sürücülerden tüm referanslar. Bu başlık , Windows SDK'de bulunmaz ve DirectX SDK sürümü , yeni winerror.h ile çakışır.

Tüm D3DX DLL dosyaları, geliştirme bilgisayarınıza DirectX SDK yüklemesiyle yüklenir. 'un başka bir makineye taşınması durumunda, gerekli D3DX bağımlılıklarının 'un herhangi bir örnekle veya uygulamanızla yeniden dağıtıldığından emin olun.

D3DX11 'un geçerli kullanımları için değiştirme teknolojilerinin DirectXTex ve DirectXTK'yi içerdiğini unutmayın. D3DXMath, DirectXMath ile değiştirilir.

FFS Microsoft, lütfen API'nın bu sürüme benzemeyen sürümünü değiştirmeyin !!!

+7

anda dışarı DirectX11 kitapların hepsi, deliliği d3dx11.h kapsamlı kullanan, özellikle Anlaştık! – JMK