Pergunta

Recentemente eu tenho Visual Studio em um novo computador, e para configurar DirectX sobre ele, eu fui para Ferramentas> Opções> Projetos e Soluções> Diretórios VC ++ e em arquivos de biblioteca feita uma nova entrada C:\Program Files\Microsoft DirectX SDK (August 2009)\Lib\x86

e agora correu um programa de teste (essencialmente apenas inicializado DirectX) e funcionou muito bem. No entanto, se eu mudar ...\Lib\x86 para ...\Lib\x64, do que eu recebo um erro de vinculador que Direct3DCreate9 é indefinido:

1>main.obj : error LNK2019: unresolved external symbol _Direct3DCreate9@4 referenced in function "void __cdecl init(void)" (?init@@YAXXZ)
Foi útil?

Solução

As bibliotecas são x86 para aplicações de 32 bits, e as bibliotecas x64 são para aplicações de 64 bits.

Você pode ver qual plataforma você está direcionando no Configuration Manager do Visual Studio. A menos que você tenha uma boa razão, você deve estar escrevendo aplicativos de 32 bits, uma vez que aplicativos de 64 bits requer a versão de 64 bits do Windows para ser executado.

Outras dicas

A pasta x64 contém os arquivos de biblioteca para a plataforma AMD64 (Windows de 64 bits). Você precisa compilar o seu pedido de 64 bits, também. Além disso, você precisará da versão do Windows de 64 bits para executar o produzido executável.

Bem, a resposta simples é que as bibliotecas x86 são para sistemas operacionais de 32 bits e as bibliotecas x64 são para sistemas operacionais de 64 bits.

Simplesmente mudar a biblioteca DirectX ligada à produzirá um erro como você é (com toda a probabilidade) tentando ligar seu código de 32 bits para a biblioteca de 64 bits. Você vai precisar de compilar o código para direcionar sistemas de 64 bits operando de chegar a este vínculo com sucesso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top