2010-06-03 9 views
0

J'ai une application 3D simple programmée en C++ et D3D9 en utilisant MSVC++ 2008 Express. Il y a quelques semaines, j'ai dû formater mon disque dur, donc le SDK DirectX n'est pas installé actuellement.Comment exécuter des programmes D3D9 (qui ont déjà été compilés) sur une machine sans le SDK?

Cependant, j'ai trouvé que le fichier exe que j'ai trouvé dans mon dossier "Debug" pour le projet ne fonctionne pas. L'erreur qu'il donne est:

"Cette application n'a pas pu démarrer parce que d3dx9d_38.dll n'a pas été trouvé Réinstaller l'application peut résoudre ce problème."

Bien sûr, cela a fonctionné après avoir installé le SDK. Ensuite, j'ai compilé un "build release" pensant que c'était la solution. Ensuite, j'ai désinstallé le SDK et essayé d'exécuter le fichier .exe. Toujours m'a donné l'erreur.

Alors, comment peut-on faire tourner de tels fichiers .exe sur des machines sans le SDK?

Répondre

0

Je pense que vous ne pouvez pas exécuter l'application sans le SDK. Voir XBMC, qui nécessite l'exécution du SDK.

Toutefois, vous pouvez essayez simplement de placer le fichier dll requis à partir de votre SDK dans le même répertoire que l'exécutable.

0

J'ai suivi la solution comme indiqué here.

J'ai copié le fichier d3dx9_38.dll dans mon dossier de sortie. Cela n'a toujours pas fonctionné. Cependant, j'ai rebaptisé le fichier dll en "d3dx9d_38.dll", puis cela a fonctionné Vous vous demandez pourquoi j'ai dû renommer la version de débogage du fichier même si c'était une version RELEASE ... (madarchod v__v)

+0

hein? Vous avez dit dans votre question que c'était un exe venant du répertoire de débogage ... d3dx9d_38.dll est certainement un dll de débogage, que vous n'êtes pas autorisé à distribuer.Construire contre la version d3d – Bahbar

+1

Vous avez lié au débogage D3DX DLL: SO vous avez renommé la DLL de version pour ressembler à la DLL de débogage et cela fonctionne (Heureusement, il n'y a pas de problèmes de débogage à résoudre ici.) – Goz

+0

Modifier les paramètres de l'éditeur de liens pour la version release Bibliothèque DirectX, au lieu de celle de débogage – Alan