2008-09-17 9 views
3

Nous avons une application qui doit utiliser Direct3D. Plus précisément, il a besoin au moins de la version 4.09.0000.0904 de DirectX 9.0c. Bien que cela devrait être présent sur toutes les nouvelles machines XP, il peut ne pas être installé sur des machines XP plus anciennes. Comment puis-je programmer (en utilisant C++) déterminer s'il est installé? Je veux être en mesure de donner un message d'information à l'utilisateur que Direct3D ne sera pas disponible.Comment déterminer quelle version de Direct3D est installée?

Répondre

0

Selon la documentation de DirectX 9.0 SDK (été 2004), consultez l'exemple GetDXVer SDK dans \ Samples \ Multimedia \ DXMisc \ GetDXVer.

0

Une recherche rapide sur Google tourne en this article qui identifie le emplacement du numéro de version dans le registre, puis fournit une déclaration de cas qui mappe le numéro de version interne sur le numéro de version que nous connaissons mieux.

Une autre recherche rapide sur Google montre un exemple en C++ pour reading from the registry.

... Profitez

+0

oups, liens rompus! –

0

Oui, utiliser le mécanisme indiqué dans le DirectX Installer échantillon dans le Mars 2009 DirectX SDK. (Regardez sous la catégorie "Système" dans l'exemple de navigateur.)

N'utilisez pas le registre! Ce truc est non documenté et pas garanti de travailler.

La seule méthode prise en charge consiste à utiliser l'API DirectSetup, qui est affichée dans l'exemple d'installation DirectX. Je couvre également ce genre de choses au chapitre 24. Installation et configuration dans mon livre The Direct3D Graphics Pipeline. Vous pouvez télécharger ce chapitre gratuitement à l'adresse ci-dessus.

Questions connexes