首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

运用D3DX10CreateEffectFromFile后报错,请求解决方案

2013-01-01 
使用D3DX10CreateEffectFromFile后报错,请求解决方案。在开发使用的机子上不管使用debug还是release执行程

使用D3DX10CreateEffectFromFile后报错,请求解决方案。
在开发使用的机子上不管使用debug还是release执行程序都不会出错。

但是在别的机器上运行程序会报错:“E_FAIL(0x80004005) Calling: D3DX10CreateEffectFromFile Do you want to degug the application?”现在就是不知道怎么会报这样的错误。

报错的机器都没有安装DX SDK。

//************************************************************
//下面是代码:
//把其中的DXTrace(__FILE__, (DWORD)__LINE__, hr, L"D3DX10CreateEffectFromFile",true);注释掉也不行。


bool CDirect3D10Device::CreateEffect(ShaderEffectStruct* pShaderEffect)
{
//
//
//创建效果
ID3D10Blob* compilationErrors = 0;
HRESULT hr = 0;
hr = D3DX10CreateEffectFromFile(pShaderEffect->pFileName, 0, 0, "fx_4_0",sD3D10_SHADER_ENABLE_STRICTNESS, 0, md3dDevice, 0, 0, &pShaderEffect->pEffect, &compilationErrors, 0);

if(FAILED(hr))
{
if( compilationErrors )
{
MessageBoxA(0, (char*)compilationErrors->GetBufferPointer(), 0, 0);
ReleaseCOM(compilationErrors);
}
DXTrace(__FILE__, (DWORD)__LINE__, hr, L"D3DX10CreateEffectFromFile",true);

return false;
}


//************************************************************
起初以为是DX10自身带有debug功能的原因,但是我已经把这功能关闭了:

D3D10CreateDeviceAndSwapChain(
0,                 //默认监视器
D3D10_DRIVER_TYPE_HARDWARE,
0,                 //不启用软件模拟
0, 
D3D10_SDK_VERSION,
&DXswap,
&mSwapChain,
&md3dDevice)




请大家看看这要怎样解决?
[解决办法]
可以不装DXSDK,但你必须装runtime。如果目标机器装了runtime。
就检查D3DX10CreateEffectFromFile的参数。

热点排行