D3DCompile E_INVALIDARG
D3DCompile E_INVALIDARG
本文关键字:INVALIDARG D3DCompile 更新时间:2023-10-16
我在这里遇到了d3dcompile的问题。我正在编写具有CX C 运行时的UWP应用程序。有一个代码
const std::string shaderSource =
"struct PixelShaderInputn"
"{n"
" float3 color : COLOR0;n"
"};nn"
"float4 main(PixelShaderInput input) : SV_TARGETn"
"{n"
" return float4(1.0f, 1.0f, 0.0f, 1.0f);n"
"}";
HRESULT hr = D3DCompile(
shaderSource.c_str(),
shaderSource.length(),
NULL,
NULL,
NULL,
"main",
"ps_5_0",
NULL,
NULL,
&pShaderCode,
&errorBlob);
结果,我得到了e_invalidarg。
有趣的是,如果我在着色器的文本中犯了一个错误(例如,请勿编写另一个输入点(,那么结果是特定的编译错误。
有什么问题?
不应将传统DirectX SDK用于UWP应用程序开发。
请参阅MSDN:DirectX SDK在哪里?和此博客文章。
Windows 8.0,Windows 8.1和Windows 10的Windows SDK已经包含了所有最新的DirectX标头,包括最新版本的D3DCompile(版本#47版本,与Legacy Directx SDK的版本#43(。参见HLSL,FXC和D3DCOMPILE
传统DirectX SDK的几个位是不建议的,并且在Windows SDK中不可用,尤其是D3DX9,D3DX10和D3DX11。看到没有D3DX的生活。
确实,即使您仍在定位Windows XP -OR-如果您需要Xaudio2在Windows 7上,则不需要传统DirectX SDK,即使是Win32桌面开发。
yeap,丢弃旧的SDK,它起作用!
相关文章:
- 没有找到相关文章