【问题标题】:Tutorial 2 of msdn "Direct3D Tutorial Win32 Sample"msdn《Direct3D教程Win32示例》教程2
【发布时间】:2016-07-25 15:18:21
【问题描述】:

嗨,我正在尝试做 https://code.msdn.microsoft.com/windowsdesktop/Direct3D-Tutorial-Win32-829979ef#content 的教程 2。

在教程 1 中,我必须添加 #pragma comment(lib,"d3d11.lib") 才能使其工作。

在教程 2 中,我添加了 2 个 pragma,#pragma comment(lib,"d3d11.lib") 和 #pragma comment(lib,"D3DCompiler.lib")。但我仍然无法构建它。 .hlsl 文件产生错误:{Error X1507 failed to open source file: 'Tutorial02.fx'}。 我试图在我的计算机中找到 Tutorial02.fx 但找不到。知道这个文件在哪里或如何使它工作吗?我正在使用 Visual Studio 2015 社区版。

【问题讨论】:

    标签: direct3d direct3d11 direct3d9 direct3d10


    【解决方案1】:

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

    我只是这样做了,并且能够使用 VS 2015 毫无问题地构建所有配置的所有教程。听起来您可能没有正确扩展包,因为包中显然存在Tutorial02.fx

    请注意,我已经有一段时间没有更新我的示例的 MSDN 副本了。我现在在GitHub 上维护它们。

    【讨论】:

    • 感谢您的回答。我只是想知道如何创建这种类型的文件格式。我知道如何添加 .hlsl 文件。但我不知道这个文件(Tutorial02.fx)是如何添加的。在 Visual Studio 中,我可以通过右键单击解决方案资源管理器中的项目,然后单击“添加项目”来添加代码文件、资源文件、数据文件、Web 文件、实用程序文件、属性表、HLSL 文件和图形文件。我找不到添加 .fx 文件的方法。这个文件是怎么添加的?在 .cpp 文件中,我找到了“hr = CompileShaderFromFile(L"Tutorial02.fx", "VS", "vs_4_0", &pVSBlob); 行。是在创建文件吗?
    • .fx 文件的处理方式与 Visual Studio 的 .hlsl 文件完全相同。但是,对于本教程,.fx 文件没有直接编译,因为 Visual Studio 不能多次编译同一个源文件。因此,这两个 .hlsl 文件正在使用 .fx 文件的 #include。这只是为了验证着色器以使其更易于使用,因为正如您在代码中看到的那样,.fx 文件被代码编译了两次。
    • 在实际应用程序中,您希望在应用程序的编译时而不是在程序运行时在运行时构建所有着色器。为简单起见,这些教程在编译时(便于验证)和运行时(便于使用)进行构建。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    • 2017-01-07
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    • 2012-03-26
    相关资源
    最近更新 更多