2008-09-17 28 views
3

Direct3D'yi kullanmamız gereken bir uygulama var. Özellikle, en azından DirectX 9.0c 4.09.0000.0904 sürümüne ihtiyaç duyar. Bu, tüm yeni XP makinelerinde mevcut olsa da, eski XP makinelerinde yüklü olmayabilir. Programlı olarak (C++ kullanarak) kurulu olup olmadığını nasıl belirleyebilirim? Direct3D'nin kullanılamayacağı konusunda kullanıcıya bilgi mesajı verebilmek istiyorum.Direct3D'nin hangi sürümü yüklü olduğu nasıl belirlenir?

cevap

5

Çağrı DirectXSetupGetVersion:

DWORD dwVersion; 
DWORD dwRevision; 
if (DirectXSetupGetVersion(&dwVersion, &dwRevision)) 
{ 
    printf("DirectX version is %d.%d.%d.%d\n", 
      HIWORD(dwVersion), LOWORD(dwVersion), 
      HIWORD(dwRevision), LOWORD(dwRevision)); 
} 
0

DirectX 9.0 SDK (yaz 2004) belgelerine göre, \ Samples \ Multimedia \ DXMisc \ GetDXVer adresindeki GetDXVer SDK örneğine bakın.

0

Hızlı bir Google arama tanımlayan this article çıkıyor: http://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.directsetup.directxsetupgetversion

Sen Burada dsetup.h

dahil etmek gerekir sitesinden örnek kod var Kayıt defterindeki sürüm numarasının yeri ve daha sonra iç sürüm numarasını daha aşina olduğumuz sürüm numarasına eşleyen bir durum bildirimi sağlar.

Başka bir hızlı Google araması, reading from the registry için C++ uygulamasına bir örnektir.

Enjoy ...

+0

oops, bozuk bağlantılar! –

0

Evet, Mart 2009 DirectX SDK örneği yükleyin DirectX gösterilen mekanizma kullanır. (Örnek tarayıcıda "Sistem" kategorisinin altına bakın.)

Kayıt defterini kullanmayın! Bu şeyler belgesiz ve işe yaramıyor.

Desteklenen tek yol, DirectX Yükleme örneğinde gösterilen DirectSetup API'sini kullanmaktır. Ayrıca bu maddeyi, kitabım The Direct3D Graphics Pipeline'daki Bölüm 24. Kurulum ve Kurulum bölümünde ele aldım. Bu bölümü ücretsiz olarak yukarıdaki URL'den indirebilirsiniz.

İlgili konular