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
Appel DirectXSetupGetVersion: http://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.directsetup.directxsetupgetversion
Vous devrez inclure dsetup.h
est ici l'exemple de code à partir du site:
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));
}
Selon la documentation de DirectX 9.0 SDK (été 2004), consultez l'exemple GetDXVer SDK dans \ Samples \ Multimedia \ DXMisc \ GetDXVer.
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
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.
- 1. Comment savoir quelle version de GTK + est installée sur Ubuntu?
- 2. Comment savoir quelle version de MDAC est installée?
- 3. comment vérifier MS Office version installée sur les machines
- 4. Comment déterminer la version de FLASH avec InstallShield 2009
- 5. Comment déterminer la version de oc4j utilisée?
- 6. Quelle version est mon serveur MySQL?
- 7. Comment savoir si la version de débogage de Flash est installée?
- 8. Quelle est la dernière version de Lucene.net?
- 9. Quelle version de ruby est moins buggée?
- 10. Quelle version de .NET est livrée avec quelle version de Windows?
- 11. Détection de la version Excel installée (et des Service Packs)
- 12. API Windows pour déterminer la version du Service Pack
- 13. Déterminer la version de mon application Silverlight
- 14. Quelle version de C# j'utilise?
- 15. Quelle version de Crystal Reports est distribuée avec VS2008?
- 16. OpenGL et Direct3D
- 17. Problème de caméra Direct3D
- 18. Quelle est la bonne façon de gérer la version d'assemblage?
- 19. Quelle est la version C# de InputDialog de VB.net?
- 20. Quelle est la façon la plus pythonique de déterminer l'endianisme?
- 21. Déterminer la version de ruby à partir de Rails
- 22. Test si une police est installée (Win32)
- 23. Quelle version de log4j est fournie avec OpenCms 7?
- 24. Déterminer quelle case est cochée dans une liste CheckBoxList
- 25. Détection de la version d'IE installée sur votre système d'exploitation en C#?
- 26. Test si une police est installée
- 27. WIX: Comment détecter si une application tierce est installée?
- 28. Comment savoir sur quel lecteur une application Java est installée?
- 29. Comment déterminer si XML est bien formé?
- 30. Requête Windows pour si une application est installée par UpgradeCode
oups, liens rompus! –