2016-07-25 10 views
0

Привет, я пытаюсь сделать Tutorial2 из https://code.msdn.microsoft.com/windowsdesktop/Direct3D-Tutorial-Win32-829979ef#content.Учебник 2 из msdn «Direct3D Tutorial Win32 Sample»

В учебнике 1 мне пришлось добавить #pragma comment (lib, "d3d11.lib"), чтобы он работал.

В учебнике 2 я добавил 2 pragmas, # pragma comment (lib, "d3d11.lib") и #pragma comment (lib, "D3DCompiler.lib"). Но все же я не могу его построить. Файлы .hlsl вызывают ошибку: {Ошибка X1507 не удалось открыть исходный файл: 'Tutorial02.fx'}. Я попытался найти Tutorial02.fx на своем компьютере, но не смог. Любая идея, где этот файл был бы или как это сделать? Я использую Visual Studio 2015 Community Edition.

ответ

0

Поскольку вы используете VS 2015, я предполагаю, что вы открыли Tutorials.sln и обновили их до версии 140, да?

Я только что сделал это и смог построить все учебные пособия для всех конфигураций без каких-либо проблем с использованием VS 2015. Похоже, что вы, возможно, не правильно расширили пакет, потому что Tutorial02.fx явно присутствует в пакете.

Note that I've not updated the MSDN copies of my samples in some time. I now maintain them on GitHub .

+0

Благодарим за ответ. Мне просто интересно, как создать этот тип файла. Я знаю, как добавить файл .hlsl. Но я не знаю, как был добавлен этот файл (Tutorial02.fx). В Visual Studio я могу добавить файлы кода, файлы ресурсов, файл данных, веб-файл, служебный файл, листы свойств, файл HLSL и файл графики, щелкнув правой кнопкой мыши по проекту в проводнике решений и нажав кнопку «добавить элемент». Я не мог найти способ добавить файл .fx. Как был добавлен этот файл? В .cpp-файле я нашел строку «hr = CompileShaderFromFile (L« Tutorial02.fx »,« VS »,« vs_4_0 », & pVSBlob);». Создает ли файл? – Niraj

+0

Файлы '' .fx'' обрабатываются в точности как '.hlsl'' файлы Visual Studio. Однако для учебника файл '.fx'' не компилируется напрямую, потому что Visual Studio не может скомпилировать один и тот же исходный файл более одного раза. Поэтому два файла .hlsl используют '' # include'' '' .fx''. Это просто для проверки шейдера, чтобы было легче играть, потому что, как вы видите в коде, файл '.fx'' дважды выполняется кодом. –

+0

В реальных приложениях вы хотите предпочесть строить все свои шейдеры во время компиляции приложения, а не во время выполнения программы. Для простоты эти обучающие программы выполняют сборку во время компиляции (для простой проверки) и во время выполнения (для удобства использования). –