Qual è la differenza tra il 64 e il file di libreria x86 in DirectX?
-
19-09-2019 - |
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)
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.