В чем разница между файлами библиотек x64 и x86 в DirectX? - PullRequest
3 голосов
/ 07 февраля 2010

Недавно я установил Visual Studio на новый компьютер, и для настройки DirectX на нем я выбрал Инструменты> Параметры> Проекты и решения> Каталоги VC ++ и в разделе Файлы библиотеки сделал новую запись C:\Program Files\Microsoft DirectX SDK (August 2009)\Lib\x86

и теперь запустил тестовую программу (по сути только что инициализированную DirectX), и она работала нормально. Однако, если я изменю ...\Lib\x86 на ...\Lib\x64, то получаю ошибку компоновщика, что Direct3DCreate9 не определено:

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

Ответы [ 3 ]

7 голосов
/ 07 февраля 2010

Библиотеки x86 предназначены для 32-битных приложений, а библиотеки x64 - для 64-битных приложений.

Вы можете видеть, на какую платформу вы нацеливаетесь, в диспетчере конфигурации Visual Studio. Если у вас нет веских причин, вам следует писать 32-разрядные приложения, поскольку для запуска 64-разрядных приложений потребуется 64-разрядная версия Windows.

0 голосов
/ 07 февраля 2010

Папка x64 содержит файлы библиотеки для платформы AMD64 (Windows 64 Bit). Вам также необходимо скомпилировать приложение для 64-битной версии. Кроме того, вам нужна 64-битная версия Windows для запуска созданного исполняемого файла.

0 голосов
/ 07 февраля 2010

Что ж, простой ответ заключается в том, что библиотеки x86 предназначены для 32-разрядных операционных систем, а библиотеки x64 - для 64-разрядных операционных систем.

Простое изменение связанной библиотеки DirectX приведет к ошибке, поскольку вы (по всей вероятности) пытаетесь связать свой 32-битный код с 64-битной библиотекой. Вам нужно будет скомпилировать свой код для 64-битных операционных систем, чтобы успешно связать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...