Was ist der Unterschied zwischen der x64 und x86 Bibliothek Dateien in DirectX?
-
19-09-2019 - |
Frage
ich Visual Studio auf einen neuen Computer vor kurzem bekam, und DirectX darauf einzurichten, ich auf Extras ging> Optionen> Projekte und Lösungen> VC ++ Verzeichnisse und unter Bibliotheksdateien einen neuen Eintrag C:\Program Files\Microsoft DirectX SDK (August 2009)\Lib\x86
und lief nun ein Testprogramm (im Wesentlichen nur initialisiert DirectX) und es funktionierte gut. wenn ich ...\Lib\x86
jedoch ändern ...\Lib\x64
, als ich ein Linker-Fehler erhalten, dass Direct3DCreate9
ist nicht definiert:
1>main.obj : error LNK2019: unresolved external symbol _Direct3DCreate9@4 referenced in function "void __cdecl init(void)" (?init@@YAXXZ)
Lösung
Die x86-Bibliotheken sind für 32-Bit-Anwendungen und die x64-Bibliotheken sind für 64-Bit-Anwendungen.
Sie können sehen, welche Plattform, die Sie in Visual Studio Configuration Manager Targeting. Es sei denn, Sie haben einen guten Grund, sollten Sie 32-Bit-Anwendungen schreiben, da 64-Bit-Anwendungen werden die 64-Bit-Version von Windows benötigen auszuführen.
Andere Tipps
Der x64
Ordner enthält die Bibliotheksdateien für die AMD64-Plattform (Windows 64 Bit). Sie benötigen eine Anwendung für 64-Bit zu kompilieren, zu. Außerdem müssen Sie die 64-Bit-Version von Windows die erzeugte ausführbare Datei auszuführen.
Nun, die einfache Antwort ist, dass die x86-Bibliotheken sind für 32-Bit-Betriebssysteme und die x64-Bibliotheken sind für 64-Bit-Betriebssysteme.
Ändern Sie einfach die DirectX-Bibliothek verknüpft wird einen Fehler zu produzieren, wie Sie (aller Wahrscheinlichkeit nach) versuchen, sind Ihre 32-Bit-Code in die 64-Bit-Bibliothek zu verknüpfen. Sie müssen Ihren Code kompilieren 64-Bit-Betriebssysteme zum Ziel, dies zu erhalten erfolgreich zu verbinden.