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

使用D3DX10CreateEffectFromFile后报错,请求解决方案。该如何处理

2012-02-11 
使用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);注释掉也不行。

C/C++ code
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功能的原因,但是我已经把这功能关闭了:
C/C++ code
D3D10CreateDeviceAndSwapChain(            0,                 //默认监视器            D3D10_DRIVER_TYPE_HARDWARE,            0,                 //不启用软件模拟            0,             D3D10_SDK_VERSION,            &DXswap,            &mSwapChain,            &md3dDevice)




请大家看看这要怎样解决?

[解决办法]
可以不装DXSDK,但你必须装runtime。如果目标机器装了runtime。
就检查D3DX10CreateEffectFromFile的参数。

热点排行