关于 ID3DXEffect::SetMatrix 的问题
微软 DIRECTX SDK 中有两个例子,一个是SimpleSample Sample(July 2005),另一个是ShadowMap Sample( July 2004),在这两个例子的OnD3D9CreateDevice(SimpleSample Sample)函数和OnCreateDevice(ShadowMap Sample)函数中同样的位置加入同样的语句:
WCHAR str[MAX_PATH];
V_RETURN( DXUTFindDXSDKMediaFileCch( str, MAX_PATH, L"xxxxxxx.fx" ) );
V_RETURN( D3DXCreateEffectFromFile( pd3dDevice, str, NULL, NULL, dwShaderFlags,
NULL, &g_pEffect9, NULL ) );
//以上几句是原有的
//以下两句是我加的
D3DXMATRIX *aa;
g_pEffect9->SetMatrix("mj",aa);
编译时SimpleSample Sample报错:
error C2664: “ID3DXEffect::SetMatrix”: 不能将参数 1 从“const char [3]”转换为“D3DXHANDLE”
但ShadowMap Sample 却不会报错.
请问是什么回事?
[解决办法]
你程序里有任何叫 "mj"的东西吗?
D3DXHANDLE可以是 Variable Name, Technique Name, MyArray[0].