运用D3DX10CreateEffectFromFile后报错,请求解决方案
使用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);注释掉也不行。
//************************************************************
起初以为是DX10自身带有debug功能的原因,但是我已经把这功能关闭了:
请大家看看这要怎样解决?
------解决方案--------------------
可以不装DXSDK,但你必须装runtime。如果目标机器装了runtime。
就检查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的参数。