2016-07-25 104 views
0

您好我正在尝试教程2的https://code.msdn.microsoft.com/windowsdesktop/Direct3D-Tutorial-Win32-829979ef#contentmsdn“Direct3D教程Win32示例”教程2

在教程1中,我不得不添加#pragma comment(lib,“d3d11.lib”)才能使其工作。

在教程2中,我添加了2个编译指令,#pragma comment(lib,“d3d11.lib”)和#pragma comment(lib,“D3DCompiler.lib”)。但我仍然无法建立它。 .hlsl文件产生错误:{错误X1507无法打开源文件:'Tutorial02.fx'}。 我试图在我的电脑中找到Tutorial02.fx,但无法找到。任何想法,这个文件将是或如何使这项工作?我正在使用Visual Studio 2015社区版。

回答

0

由于您使用VS 2015,我假设您打开了Tutorials.sln并将其升级到v140,是吗?

我刚刚那样做了,并且能够在没有任何问题的情况下使用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中,通过右键单击解决方案资源管理器中的项目,然后单击“添加项目”,可以添加代码文件,资源文件,数据文件,Web文件,实用程序文件,属性表,HLSL文件和图形文件。我找不到添加.fx文件的方法。这个文件是如何添加的?在.cpp文件中,我找到了一行“hr = CompileShaderFromFile(L”Tutorial02.fx“,”VS“,”vs_4_0“,&pVSBlob);”。它创建文件吗? – Niraj

+0

''.fx''文件的处理与Visual Studio的''.hlsl''文件完全相同。但是,对于本教程,“.fx”文件不是直接编译的,因为Visual Studio无法多次编译同一个源文件。因此这两个.hlsl文件使用''.fx''文件的'#include''。这只是为了验证着色器,使其更容易玩,因为如您在代码中看到的那样,该代码会编译“'.fx”文件两次。 –

+0

在实际应用程序中,您希望在应用程序的编译时构建所有着色器,而不是在程序运行时的运行时。为了简单起见,这些教程在编译时(为了便于验证)和在运行时(为了便于使用)进行构建。 –