ユーザーがアクセスできないようにしたい HLSL で書かれたシェーダーがあります。メモリのセクションからコンパイルする方法はありますか。問題は、次の関数がファイルを入力としてLPCSTR
使用するために を受け入れることです。.fx
HRESULT D3DXCreateEffectFromFile(
_In_ LPDIRECT3DDEVICE9 pDevice,
_In_ LPCTSTR pSrcFile,
_In_ const D3DXMACRO *pDefines,
_In_ LPD3DXINCLUDE pInclude,
_In_ DWORD Flags,
_In_ LPD3DXEFFECTPOOL pPool,
_Out_ LPD3DXEFFECT *ppEffect,
_Out_ LPD3DXBUFFER *ppCompilationErrors
);
void* の行に沿った何か、またはメモリのブロックからコンパイルするための少なくとも何らかの方法が必要です。データをファイルに保存し、コンパイルしてファイルを削除する以外に、これを行う方法はありますか?
wchar_t* shaderCode = L"//Poorly formatted shader code goes here";
上記のメモリセクションから文字通りコンパイルできるようにしたい。これはどのように行うことができますか?