|
微软 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 却不会报错.
经仔细对比,发现SimpleSample Sample的预处理器定义中多出一个"D3DXFX_LARGEADDRESS_HANDLE",把它去掉后上述报错消失,但引出一个警告:
manifest authoring warning 81010002: Unrecognized Element "application" in namespace "urn:schemas-microsoft-com:asm.v3".而这个警告在ShadowMap Sample 中却不会出现,不知为什么?
|
|