Domanda

Di recente ho avuto Visual Studio su un nuovo computer, e per impostare DirectX su di esso, sono andato a Strumenti> Opzioni> Progetti e Soluzioni> Directory di VC ++ e sotto file di libreria ha fatto una nuova voce C:\Program Files\Microsoft DirectX SDK (August 2009)\Lib\x86

e ora gestiva un programma di test (DirectX essenzialmente solo inizializzato) e ha funzionato bene. Tuttavia, se cambio ...\Lib\x86 a ...\Lib\x64, che ottengo un errore di linker che Direct3DCreate9 è indefinito:

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

Soluzione

Le librerie x86 sono per le applicazioni a 32 bit, e le librerie x64 sono per le applicazioni a 64 bit.

È possibile vedere quale piattaforma ci si rivolge a Configuration Manager di Visual Studio. Se non avete una buona ragione, si dovrebbe essere a scrivere applicazioni a 32 bit, dal momento che le applicazioni a 64 bit richiedono la versione a 64 bit di Windows per eseguire.

Altri suggerimenti

La cartella x64 contiene i file di libreria per la piattaforma AMD64 (Windows a 64 bit). È necessario compilare l'applicazione per 64 bit, anche. Inoltre, è necessario la versione a 64 bit di Windows per eseguire il file eseguibile prodotto.

Beh, la risposta più semplice è che le librerie x86 sono per i sistemi operativi a 32 bit e le librerie x64 sono per i sistemi operativi a 64 bit.

È sufficiente cambiare la libreria DirectX legato alla produrrà un errore come sei (con ogni probabilità), cercando di collegare il tuo codice a 32 bit per la libreria a 64 bit. Sarà necessario compilare il codice per indirizzare sistemi operativi a 64 bit per ottenere questo a collegare con successo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top