所以,我创建了一个项目并复制本教程 https://github.com/microsoft/DirectX-Graphics-Samples/tree/master/Samples/Desktop/D3D12HelloWorld/src/HelloWindow在里面。当我尝试运行它时,它给了我这个错误:C2102 & requires l-value
at
m_commandList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m_renderTargets[m_frameIndex].Get(), D3D12_RESOURCE_STATE_PRESENT, D3D12_RESOURCE_STATE_RENDER_TARGET));
我搜索了很多,但没有发现任何符合上下文的内容。我能做什么来修复它?
这本质上与下面报告的构建错误相同问题 #652 https://github.com/microsoft/DirectX-Graphics-Samples/issues/652 构建 D3D12MeshShaders 时出错(在 VS 16.8.0 Preview 3.0 上) in the DirectX 图形示例 https://github.com/microsoft/DirectX-Graphics-Samples repo.
我收到错误 C2102:“&”在许多行上需要左值。通常是当 CD3DX12 构造函数直接与 & 一起使用时,例如 [...]
该问题仍然悬而未决,评论中给出了临时解决方法:
使用像这样的右值地址是不合格的代码。
Visual C++ 在此发出警告 C4238,其中 /W4 警告级别为 4,但大多数 VC 项目默认为级别 3,包括这些示例。 [...] 看起来 /permissive- 的最新 Visual C++ 更新已将其升级为错误。
您现在可以通过在 C/C++ -> 语言项目设置中将“一致性模式”更改为“否”来禁用 /permissive- 来解决此问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)