DX11 Unresolved Externals

删除回忆录丶 提交于 2019-12-01 23:57:39

Linker cannot find definition of D3DX11CreateEffectFromMemory function. This function is a part of Effects11 framework. And you need to link Effects11.lib to build this program.

Previously, to develop DirectX apps, you must have been DirectX SDK installed. Now that stand-alone DirectX SDK concerned legacy and now it is a part of Windows SDK (since version 8.0). You`ve got it when installed Visual Studio 2012.

The problem is now this SDK version doesn't include Effect11 framework, among other things.

There are several ways to fix this problems:

  1. Download and install legacy DirectX SDK. When compiling you will get some warnings, because of conflicting old DirectX SDK and new Windows SDK. To solve this you can switch to your project to v110xp toolset or install Windows 7 SDK and switch to v100 in project's options.
  2. In case of this sample program, Mr. Luna included compiled libs in Common folder of source code archive. But I'm not sure if it will work with Win8 SDK.
  3. Correct source code and strip out Effect11 stuff. If you just learning DirectX, it is not easy way.

Some more explanation from Chuck Walbourn - MSFT:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!