Compilando DX aplicativo 9.0c contra March09SDK => Não é possível executar com DX mais velho DLLs 9.0c => Problema :)
Pergunta
Eu sou incapaz de fazer um cenário de assunto.
Eu tenho DirectX 09 março de 2009 SDK instalado, que é 9, "sub" -version c, mas "sub-sub" -version é 41, então libs (d3d9.lib d3dx9.lib) estão ligando exportações para dxd3d_41. dll.
O que acontece quando tento executar meu aplicativo na máquina que tem, mas não DX9.0c redistribuível a partir de Março 2009 é agora óbvio :), ele falha porque não pode encontrar dxd3d_41.dll.
Qual é a solução padrão para este problema? Como vou para compilar meu aplicativo para ser apoiada por todas as máquinas que têm DX 9.0c? É que mesmo viável?
Thanx
Solução
Você precisa instalar o tempo de execução que corresponde ao SDK que você usar para compilar.
A única maneira de forçar isso para funcionar em máquinas todos com DirectX9c instalado é usar um SDK de idade (o primeiro SDK 9.0c). No entanto, eu recomendo fortemente evitar este. Você é muito melhor fora apenas usando March 09, e instalar os tempos de execução de Março juntamente com a instalação do aplicativo.
Outras dicas
A solução mais simples é ligar para o usuário final runtime atualizador Microsoft DirectX na sua página de download e dizer às pessoas para executar este primeiro para se certificar de que os componentes de tempo de execução estão atualizados antes de instalar o aplicativo.
Depois disso, a próxima coisa mais simples é o de agregar o atualizador de tempo de execução necessário com a sua aplicação e tem usuários executá-lo antes de executar o instalador.
Tudo isso está documentado na documentação do SDK.
são de que se você ligar para d3dx9 então você são esperados As regras para lidar com certificando-se de que os componentes de tempo de execução redist necessários estão instalados.
Tenha uma olhada na página de 'Instalação DirectX para Game Developers' nos docs DXSDK.