J'ai vraiment deux questions. Le premier est plus une description des événements: le logiciel utilise DirectX 9 et compile les shaders au démarrage à partir des ressources. Les shaders se compilent à la fois avec les versions de débogage et de version lorsque vous exécutez le logiciel à partir de l'IDE, mais lorsque vous double-cliquez dessus pour l'exécuter de façon autonome, vous commencez à recevoir beaucoup d'erreurs bizarres de D3DXCompileShader.D3DXCompileShader erreurs étranges lors de l'exécution en dehors de Visual Studio
Je l'ai mis à la possibilité que Visual Studio a converti les fichiers de texte Shader en Unicode et que cela lance D3DXCompileShader en quelque sorte. Pourquoi compiler et s'exécuter correctement quand je suis dans l'EDI, mais pas en dehors de cela est un mystère (note, il échoue toujours si vous le lancez en dehors de VS, puis attachez le débogueur au processus). Quelqu'un a un avis là dessus?
Ma deuxième question concerne les tentatives de résoudre ce qui précède. Au lieu d'avoir mon propre type de données de ressource appelé SHADER, j'ai importé un shader comme RCDATA, donc au lieu de charger moi-même le shader texte de la ressource, je suis maintenant capable d'utiliser D3DXCompileShaderFromResource. Je reçois un mauvais HRESULT de mon appel à ceci cependant, mais la collection d'erreurs reste vide. Il n'y a pas du tout de sortie de débogage. Le code ressemble à ceci:
HRESULT result;
result = D3DXCompileShaderFromResource(0,
MAKEINTRESOURCE(IDR_SHADERPHONG),
NULL,
NULL,
"VERTEXMAIN",
D3DXGetVertexShaderProfile(Window()->GetDevice()),
D3DXSHADER_OPTIMIZATION_LEVEL3,
&MyVertexShaderBuffer,
&errors,
&MyVertexShaderConstants);
Le HRESULT est -2005529767, qui semble avoir échoué. Je ne peux trouver aucune référence sur les interwebs à ce que cela peut signifier par rapport à D3DXCompileShaderFromResource! J'espère que mes amis intelligents à stackoverflow peuvent offrir de l'aide ici: p.1. Merci.