私はD3DX11CompileFromFile関数を使用して、次のように、blobポインターからID3D11VertexShader*とID3D11PixelShader*をコンパイルして作成しています。
ID3D10Blob * vertexShaderBuffer;
ID3D10Blob * errorMessage;
if(FAILED(D3DX11CompileFromFile(vsFilename.c_str(), NULL, NULL, "LightVertexShader", "vs_5_0", D3D10_SHADER_ENABLE_STRICTNESS, 0, NULL, &vertexShaderBuffer, &errorMessage, NULL)))
return false;
if(FAILED(device->CreateVertexShader(vertexShaderBuffer->GetBufferPointer(), vertexShaderBuffer->GetBufferSize(), NULL, &m_vertexShader)))
return false;
ここで、vsFilenameは有効なstd :: stringであり、m_vertexShaderはID3D11ShaderVertex*です。4番目のパラメーターが何のためにあるのか知りたいですか?どこで使用しますか、いつ使用しますか、何をしますか?それが何であるかは重要ですか?私がコードのどこでそれを呼んでいるのか、それが一意である以外の目的がない場合、ユーザーがそれを指定する必要がないようにするためです。