望ましくないためd3dcompiler*.dll
、アプリから依存関係を除外しようとしています。また、新しい Compiled Shader Object (.cso) ファイルの読み込みコードに問題があります。
ifstream fstream;
fstream.open (vsfile);
if(fstream.fail())
return false;
fstream.seekg( 0, ios::end );
size_t size = size_t(fstream.tellg());
char* data = new char[size];
fstream.seekg(0, ios::beg);
fstream.read( data, size);
fstream.close();
XTRACE2(pDevice->CreateVertexShader(&data, size, 0, &m_pVertexShader))
問題:エラーをCreateVertexShader()
返しE_INVALIDARG
ます。
古いコードは正常にD3DReadFileToBlob()
動作します。Blob は、mychar*
またはファイル サイズstd::vector<char>
と同じサイズのバッファーを返します。.cso
MSDN に新しい Windows 8 の例がありますが、それらはいくつかの新しい Metro を使用しています。プレーンなC++でやりたいです。
XTRACE2
DirectX エラー チェック マクロです。
前もって感謝します!