关于Effect11 中D3DX11CompileEffectFromMemory返回E_NOITERFACE问题总结。

最近在vs2015使用dx11,使用了微软提供的Effect11进行shader编译,写代码时还是非常顺利,和dx9x或者dx10x提供方法一样非常方便,但是到编译运行时,D3DX11CompileEffectFromMemory报出返回E_NOITERFACE的错误结果。

网上找方法解决,发现国外一网站有人问出这个问题,但是和我的情况不一样,(问题连接:https://stackoverflow.com/questions/30579016/d3d11-d3dx11createeffectfrommemory-returns-e-noiterface),

自己的情况:由于项目中默认是引用了C:\Program Files (x86)\Windows Kits\8.1\里面的LIB库和include目录和自己又加上了C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)里面的LIB库和include目录,这两个目录里面都有Dx11相关的文件。

而我是在vs2015上编译的Effect11,默认使用的是C:\Program Files (x86)\Windows Kits\8.1\这里面的文件。所以自己使用Effect11时出现E_NOITERFACE的错误,这是由于程序在连接时使用了C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)的文件导致的错误,具体原因不太清楚,

因此将C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)里面的LIB库和include目录引用删除时,再进行编译应该就Ok了。


在找资料过程中发现微软在github的开源库中有使用Effect11的例子(https://github.com/walbourn/directx-sdk-samples)例子为Direct3D11TutorialsFX11文件下的。当下载编译发现能运行。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值