2014-12-06 3 views
0

В настоящее время я вхожу в некоторые программы DirectX и просто установил DX-SDK. Тем не менее, когда я открываю самый простой образец файла (Tutorial01, просто отображает синий фон) в Visual Studio (2012, но это кажется несущественным) и скомпилировать его, я получаю рабочий вывод.C++ Compiling Linking

Когда я запускаю пустой проект C++, создайте новый файл с именем main.cpp и скопируйте и вставьте код из учебника, сделайте то же самое с файлом resource.h, а также перейдите в Настройки проекта -> Свойства конфигурации - > Linker и скопировать «Input» от образца к моему собственному проекту и затем скомпилировать мой проект я получаю следующее сообщение об ошибке: выход

fatal error C1083: Cannot open include file: 'd3dx11.h': No such file or directory 

Заголовок включается через #include в обоих, образец и мой проект. Однако мой проект не будет компилироваться.

+0

Посмотрите здесь: http://rastertek.com/dx11tut01.html, может быть, это поможет вам – Jack

+0

спасибо, первоначальная проблема решена, но теперь я получаю еще одну ошибку: – ProgrammingMachine5000

+0

спасибо, начальная проблема решена, но теперь я получаю другую ошибку: 'ошибка LNK1120: 1 нерешенной external' в main.cpp, (1,1), который является' #include 'и ' LNK2019 ошибка: неразрешенный внешний символ "_D3D11CreateDeviceAndSwapChain @ 48" в function "" long __cdecl InitDevice (void) "(? InitDevice @@ YAJXZ)" 'в main.obj – ProgrammingMachine5000

ответ

0

В вашем новом проекте отсутствуют настройки VC++ Directories, чтобы найти DirectX SDK include/lib paths. Начиная с VS 2010, вы должны явно настроить пути include/lib, чтобы получить DirectX SDK, интегрированный с Visual Studio.

Поскольку вы пытаетесь использовать VS 2012 с наследством DirectX SDK, вы должны знать, что в VC++ настройки каталогов для VS 2010 являются обратной от того, что вы должны использовать с VS 2012/VS2013. Это связано с тем, что SDK Windows 8.x включает в себя новее версий большинства заголовков DirectX в устаревшем и устаревшем устаревшем DirectX SDK.

Дальнейшее осложнение заключается в том, что D3DX отсутствует в SDK Windows 8.x и сам устарел. Вы можете заставить его работать согласно инструкциям на MSDN, но имейте в виду, что сейчас есть alternatives to using D3DX для Direct3D 11, которые вы должны рассмотреть.