使用从这样的文件编译的着色器有效:
D3DX11CompileFromFile(filename, NULL, NULL, "main", "vs_5_0", D3D10_SHADER_ENABLE_STRICTNESS, 0, NULL,
&vertexShaderBuffer, &errorMessage, NULL);
但是,如果我用这一行替换上面的行:
D3DX11CompileFromMemory(vs, strlen(vs), NULL, NULL, NULL, "main", "vs_5_0", D3D10_SHADER_ENABLE_STRICTNESS, 0, NULL,
&vertexShaderBuffer, &errorMessage, NULL);
Whilevs
是着色器文件的 char* (如果我vs
使用 打印出来std::cout
,它会正确打印)。
它只是在那条线上崩溃......
我究竟做错了什么?